3 回答

TA貢獻(xiàn)1773條經(jīng)驗(yàn) 獲得超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");
}
運(yùn)行結(jié)果如下:

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

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