文章目录
一,题目
最高分最低分之差
输入n个成绩,换行输出n个成绩中最高分数和最低分数的差
输入 :
两行:
第一行为n,表示n个成绩,不会大于一千;
第二行为n个成绩(整数表示,范围为0~100,以空格隔开)
输出:
一行,输出n个成绩中的最高分数和最低分数的差
二,方法
1,方法一
void bubble_sort(int arr[100],int n)
{
int i = 0;
for (i = 0; i < n-1; i++)
{
//一趟冒泡排序
int j = 0;
for (j = 0; j < n - 1 - i; j++)
{
if (arr[j] > arr[j + 1])
{
int temp = 0;
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main()
{
int arr[100] = { 0 };
int i = 0;
int n = 0;
scanf("%d",&n);
for (i = 0; i < n; i++)
{
scanf("%d",&arr[i]);
}
bubble_sort(arr,n);
int cha = arr[n - 1] - arr[0];
printf("%d",cha);
return 0;
}
分析 |
在这里小编先用一个冒泡函数将函数从小到大排序一遍,于是最大的值就是数组下标为n-1的数,最小的值就是数组下标为0的数,将两个值进行相减得到差值。
2,方法二
int main()
{
int n = 0;
scanf("%d",&n);
int arr[50] = { 0 };
int i = 0;
for (i = 0; i < n; i++)
{
scanf("%d",&arr[i]);
}
//求最大值
int max = arr[0];
for (i = 1; i < n; i++)
{
if (arr[i] > max)
max = arr[i];
}
//求最小值
int min = arr[0];
for (i = 1; i < n; i++)
{
if (arr[i] < min)
min = arr[i];
}
printf("%d",max-min);
return 0;
}
3,方法三
int main()
{
int n = 0;
scanf("%d", &n);
int arr[50] = { 0 };
int i = 0;
for (i = 0; i < n; i++)
{
scanf("%d", &arr[i]);
}
//求最大值和最小值
int max = arr[0];
int min = arr[0];
for (i = 1; i < n; i++)
{
if (arr[i] > max)
max = arr[i];
if (arr[i] < min)
min = arr[i];
}
printf("%d", max - min);
return 0;
}
4,方法四
nt main()
{
int n = 0;
scanf("%d", &n);
int arr[50] = { 0 };
int i = 0;
int min = 100;
int max = 0;
for (i = 0; i < n; i++)
{
scanf("%d", &arr[i]);
if (arr[i] > max)
max = arr[i];
if (arr[i] < min)
min = arr[i];
}
printf("%d", max - min);
return 0;
}