從鍵盤輸入一組數(10個),找出最大數和最小數,并把最大數和第0個數交換,最小數和最后一個數交換
2 回答
已采納
Yexiaomo
TA貢獻152條經驗 獲得超157個贊
#include?<stdio.h>
#define?N?10????//這里默認數組大小為?10,?現改為其他?也可以
typedef?int?ElemType;?//因為你沒說是什么類型的數,?我這里用的是?int?類型,?并將它重命名為?ElemType
int?main(){
int?i;
int?max?=?0,?min?=?0;?//max記錄最大數的下標,?min記錄最小數的下標
ElemType?nums[N],?temp;????//temp?作為交換變量
for(i?=?0;?i?<?N;?++i){
scanf("%d",&nums[i]);
/*在輸入數據時就開始比較并找出最大值最小值的小標*/
if(nums[i]?>?nums[max])
max?=?i;
else?if(nums[i]?<?nums[min])
min?=?i;
}
/*?交換?數值?*/
temp?=?nums[max];
nums[max]?=?nums[0];
nums[0]?=?temp;
temp?=?nums[min];
nums[min]?=?nums[0];
nums[0]?=?temp;
for(i?=?0;?i?<?N;?++i){
printf("%d?",nums[i]);
}
return?0;
}交換數值 那一部分, 本來想寫一個交換值的函數,想想 你可能還沒學 指針, 所以就沒有寫, 就在主函數中 寫了兩邊 交換
很不爽, 程序很簡單, 應該能看得懂, 看不懂了, 下邊回復
-------------------------
啦啦~~Imcainiao
這都不會
TA貢獻72條經驗 獲得超92個贊
#include?<stdio.h>
int?main()?{
int?num[10],?i,?temp,?max,?min,?maxId,?minId;
//輸入?
for(i?=?0;?i?<?10;?i++)?{
scanf("%d",?&num[i]);
}
max?=?min?=?num[0];
maxId?=?minId?=?0;
//循環,查找最大最小值,并確定他們在數組里的下標?
for(i?=?0;?i?<?10;?i++)?{
if(num[i]?>?max)?{
max?=?num[i];
maxId?=?i;
}
if(num[i]?<?min)?{
min?=?num[i];
minId?=?i;
}
}
//交換?
temp?=?num[0],?num[0]?=?num[maxId],?num[maxId]?=?temp;
temp?=?num[9],?num[9]?=?num[minId],?num[minId]?=?temp;
for(i?=?0;?i?<?10;?i++)?{
printf("%d?",?num[i]);
}
return?0;
}- 2 回答
- 0 關注
- 1485 瀏覽
添加回答
舉報
0/150
提交
取消
