本文共 1000 字,大约阅读时间需要 3 分钟。
输入一批整数,以0为结束标志,找出最大数和最小数所在的位置,并把二者对调
100 任务要求 参考答案 评论 任务描述 相关知识 编程要求 测试说明 任务描述 本关任务:输入一批整数,最多不超过100个,以 0 为结束标志,找出最大数和最小值所在的位置,并把二者对调,然后输出调整后的这批整数。相关知识
定义数组的长度为100: #define N 100定义一个整型变量n来记录输入整数的个数,可以用循环语句输入数组元素:
int a[N],t,n=0;scanf("%d",&t);while(t!=0){ a[n]=t; n++; scanf("%d",&t);}
求数组的最大值,是不是很像打擂台呢?
max=a[0];pmax=0; //max存放最大值,pmax存放最大值下标
min=a[0];pmin=0; //min存放最小值,pmin存放最小值下标 for(i=1;i<n;i++) { if(a[i]>max) { max=a[i]; pmax=i; } if(a[i]<min) { min=a[i]; pmin=i; } } 请大家思考,上述代码中,这两个变量max、min是否是多余的呢?编程要求
根据提示,在右侧编辑器补充代码。测试说明
平台会对你编写的代码进行测试:测试输入:
21 47 37 69 2 8 76 50 9 41 0预期输出:
最大值:76,下标:6 最小值:2,下标:4 21 47 37 69 76 8 2 50 9 41开始你的任务吧,祝你成功!
#include#define N 100int main(){ /********** Begin **********/ int a[N],max,min,maxnum=0,minnum=0,cnt=0; int i=0; scanf("%d",&a[i]); while(a[i]!=0){ i++; scanf("%d",&a[i]); } min=a[0]; max=a[0]; for(int j=0;j max){ max=a[j]; maxnum=j; } if(a[j]
转载地址:http://lxnlf.baihongyu.com/