目前主要分为三个专栏,后续还会添加:
专栏如下: C语言刷题解析 C语言系列文章 我的成长经历
感谢阅读!
初来乍到,如有错误请指出,感谢!
描述
输入n个成绩,换行输出n个成绩中最高分数和最低分数的差。
输入描述:
两行,第一行为n,表示n个成绩,不会大于10000。
第二行为n个成绩(整数表示,范围0~100),以空格隔开。
输出描述:
一行,输出n个成绩中最高分数和最低分数的差。
思路 :
输入两行 一行是表示n个成绩
另一行输入成绩
然后进行比较大小
将最大的和最小的分别存下来 然后进行相减
代码 1 :
/*思路 :
输入两行 一行是表示n个成绩
另一行输入成绩
然后进行比较大小
将最大的和最小的分别存下来 然后进行相减
*/# include <stdio.h>
int main (){int n = 0;scanf("%d",&n);//用户输入多少个成绩int arr[n];//将用户输入的成绩都存入数组里面 【注意 此处代码不能放在VS2022 通过不了】// int arr[100] = {0}; //在VS2022 可以运行通过int i = 0;for(i = 0; i<n; i++){scanf("%d",&arr[i]);}int max = arr[0],min = arr[0];//假设最大和最小的成绩都是从下标0开始的for(int j = 0; j<n;j++)//使用for循环来遍历数据{if(arr[j]>max)//当数组里面的元素大于max 就进行赋值操作{max = arr[j];}if(arr[j]<min)//当数组里面的元素小于min 就进行赋值操作{min = arr[j];}}printf("%d",max-min);//根据题目 得出相减后的结果return 0;
}
代码 2 :
# include <stdio.h>
int main()
{int n = 0;int m = 0;int max = 0;int min = 100;scanf("%d",&n);for(int i = 0;i<n;i++){scanf("%d", &m);if(m>max){max = m;}if(m<min){min = m;}}printf("%d",max-min);return 0;
}
代码 3 :
根本不需要数组,我拿一个值接收它的数字,然后我的max=0,low=100,这个数字一开始肯定大于max小于low,比如98,那max =98,low=98,然后97进来,我的max还是98,而low却是97,就这样找到两个极值,然后相减。
#include<stdio.h>
int main()
{int n = 0;int ret = 0;int max = 0;int low = 100;scanf("%d",&n);for(int i = 0;i<n;i++){scanf("%d",&ret);if(ret > max){max = ret;}if(low >ret){low = ret;}}printf("%d",(max-low));return 0;
}