3 回答

TA貢獻1773條經驗 獲得超3個贊
給你代碼如下:
#include<stdio.h>
#define N 10 // 定義數(shù)組元素為10個
void input(int a[]);
void abc(int a[]);
void output (int a[]);
int main ()
{
int num[N];
input (num); // 向指定數(shù)組中輸入數(shù)據(jù)
abc (num); // 處理指定數(shù)組中的數(shù)據(jù)
output (num); // 輸出指定數(shù)組中的數(shù)據(jù)
return 0;}
void input (int a[])
{
int i;
for (i = 0; i < N; i++)
{
scanf ("%d", &a[i]);
}
}
void abc(int a[])
{
int minValue = a[0];
int maxValue = a[0];
int minPosition = 0;
int maxPosition = 0;
int i;
for (i=1; i<N; i++)
{
if (a[i] < minValue) // 比最小值更小,則記住最小值和位置
{
minValue = a[i];
minPosition = i;
}
if (a[i] > maxValue) // 比最大值更大,則記住最大值和位置
{
maxValue = a[i];
maxPosition = i;
}
}
// 交換第一個元素和最大值
i = a[0];
a[0] = a[maxPosition];
a[maxPosition] = i;
// 交換最后一個元素和最小值
i = a[N-1];
a[N-1] = a[minPosition];
a[minPosition] = i;
}
void output (int a[])
{
int p;
for (p = 0; p < N; p++)
{
printf ("%d ", a[p]);
}
printf("\n");
}
運行結果如下:

TA貢獻1802條經驗 獲得超5個贊
函數(shù)無返回值 無參數(shù)
所以abc和 輸出函數(shù) 的數(shù)組沒有初始化
并且里面的內容全部被舍棄
而且ABC函數(shù)里 if沒加花括號
并且不明白樓主為什么把數(shù)組分成兩半輸入輸出
弱弱的問一句
函數(shù)沒學吧?

TA貢獻1795條經驗 獲得超7個贊
錯誤很多,而且都是常識性錯誤
最重要的錯誤:你的三個函數(shù)要處理的應該是同一個數(shù)組(同一個數(shù)組并不是名字相同就是同一個數(shù)組,),這里要用到把數(shù)組當參數(shù)傳遞給下一個要處理他的函數(shù).
在main 函數(shù)函數(shù)中定義 int num[10];在main函數(shù)中調用的函數(shù)想處理這個數(shù)組就要獲得該數(shù)組的首地址,而不是在定義同名函數(shù),定義 int abc(int num[10]);調用abc(num);
添加回答
舉報