#include<stdio.h>
#include<stdlib.h>
double median(int n, int arr[])
{
int i, j, a;
for (i = 0; i < n; ++i)
{
for (j = i + 1; j < n; ++j)
{
if (arr[i] > arr[j])
{
a = arr[i];
arr[i] = arr[j];
arr[j] = a;
}
if (arr[i] > arr[j])
{
a = arr[i];
arr[i] = arr[j];
arr[j] = a;
}
}
}
if (n % 2 == 0)
{
return((arr[n/2] + arr[n/2 - 1])/2.0);
}
else {
return arr[n/2];
}
for (i = 0; i < n; i++)
{
printf("%d\n", arr[i+1]);
}
}
int main()
{
int arr[100] = { 0 };
int i, n, sum = 0;
printf("How many numbers would you like to enter?");
scanf_s("%d", &n);
while (n > 100 || n < 0)
{
printf("Amount of numbers should be less than 0 and more than 100\n");
scanf_s("%d", &n);
}
for (i = 0; i < n; i++)
{
scanf_s("%d", &arr[i + 1]);
}
printf("%f", median(n, arr));
system("pause");
}
私の関数が中央値関数を取得しないようです。この関数は配列を細かくソートしますが、中央値を見つけることは問題です。関数が中央値を見つけるたびに、別の値を出力します。どんな種類の助けも高く評価されます。配列の中央値の検索
あなたは自分自身を助けるために、デバッガを使用したい場合があります。それは楽しいです! ;;) – alk
'scanf_s("%d "、&arr [i + 1]);'はscanf_s( "%d"、&arr [i]); 'でなければなりません。あなたは 'median'関数でそれを使います。 – mch
この最終ループの 'median()'は決して呼び出されないデッドコードです。 – alk