目前主要分为三个专栏,后续还会添加:
专栏如下: 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;
}