题目如下
方法1,难度:低
一共循环了三次,一次循环输入,一次循环找最大值,一次循环找最小值
#include <stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
int arr[10000] = {0};
//循环输入
for(int i = 0; i < n; i++)
{
scanf("%d", &arr[i]);
}
int max = arr[0];
int min = arr[0];
//找最大值
for(int i = 0; i < n; i++)
{
if(max < arr[i])
{
max = arr[i];
}
}
//找最小值
for(int i = 0; i < n; i++)
{
if(min > arr[i])
{
min = arr[i];
}
}
printf("%d", (max - min));
return 0;
}
方法2,难度:中
一共循环了两次,一次循环输入,一次循环同时找最大值、最小值
#include <stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
int arr[10000] = {0};
//循环输入
for(int i = 0; i < n; i++)
{
scanf("%d", &arr[i]);
}
int max = arr[0];
int min = arr[0];
//找最大值、最小值
for(int i = 0; i < n; i++)
{
if(max < arr[i])
{
max = arr[i];
}
if(min > arr[i])
{
min = arr[i];
}
}
printf("%d", (max - min));
return 0;
}
方法3,难度:高
一共循环了一次,一次循环同时输入、找最大值、最小值
#include <stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
int arr[10000] = {0};
int max = 0;//输入的成绩为0-100,初始化一个最小值,确保它不被初始化一个最大值
int min = 100;
//循环输入、找最大值、最小值
for(int i = 0; i < n; i++)
{
scanf("%d", &arr[i]);
if(max < arr[i])
{
max = arr[i];
}
if(min > arr[i])
{
min = arr[i];
}
}
printf("%d", (max - min));
return 0;
}