猿问

利用数组处理批量数据

从键盘输入一组数(10个),找出最大数和最小数,并把最大数和第0个数交换,最小数和最后一个数交换
踏月光
浏览 1435回答 2
2回答

Yexiaomo

#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

这都不会

#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; }
随时随地看视频慕课网APP
我要回答