從鍵盤輸入一組數(shù)(10個),找出最大數(shù)和最小數(shù),并把最大數(shù)和第0個數(shù)交換,最小數(shù)和最后一個數(shù)交換
2 回答
已采納

Yexiaomo
TA貢獻152條經(jīng)驗 獲得超157個贊
#include?<stdio.h> #define?N?10????//這里默認數(shù)組大小為?10,?現(xiàn)改為其他?也可以 typedef?int?ElemType;?//因為你沒說是什么類型的數(shù),?我這里用的是?int?類型,?并將它重命名為?ElemType int?main(){ int?i; int?max?=?0,?min?=?0;?//max記錄最大數(shù)的下標,?min記錄最小數(shù)的下標 ElemType?nums[N],?temp;????//temp?作為交換變量 for(i?=?0;?i?<?N;?++i){ scanf("%d",&nums[i]); /*在輸入數(shù)據(jù)時就開始比較并找出最大值最小值的小標*/ if(nums[i]?>?nums[max]) max?=?i; else?if(nums[i]?<?nums[min]) min?=?i; } /*?交換?數(shù)值?*/ 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; }
交換數(shù)值 那一部分, 本來想寫一個交換值的函數(shù),想想 你可能還沒學 指針, 所以就沒有寫, 就在主函數(shù)中 寫了兩邊 交換
很不爽, 程序很簡單, 應(yīng)該能看得懂, 看不懂了, 下邊回復
-------------------------
啦啦~~Imcainiao

這都不會
TA貢獻72條經(jīng)驗 獲得超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; //循環(huán),查找最大最小值,并確定他們在數(shù)組里的下標? 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 關(guān)注
- 1463 瀏覽
添加回答
舉報
0/150
提交
取消