【问题描述】编写一个程序,用户输入若干整数,试找出其中的最大数和最小数。
【输入形式】用户在第一行待输入数据个数,在第二行输入数据。
【输出形式】程序在下一行输出数据的最大值和最小值
【样例输入】
5
89 62 96 74 52
【样例输出】96 52
【样例说明】用户第一次输入的为数据个数,在下一行依次输入数据。输出为5个数中的最大值和最小值,输出时候两个数之间用空格分隔。
#include
int main()
{ int n,i;
scanf("%d",&n);
int arr[n];
for(i=0;i
{
scanf("%d",&arr[i]);
}
for(i=0;i
{
int t,j=i+1;
if arr[i]
{
t=arr[i];
arr[i]=arr[j];
arr[j]=t;
}
}
printf("%d %d",arr[0],arr[n]);
return 0;
}
语法错误:第13行 if arr[i]<arr[j] 加上括号,变成 if (arr[i]<arr[j])
另外,这道题的目标是找到最大值和最小值,并不是排序,所以在for循环中,没必要做那么多交换(关键是还错了),
只需额外定义两个变量max,min分别记住当前的最大值最小值即可
#include<stdio.h>
int main()
{ int n,i;
scanf("%d",&n);
int arr[n];
for(i=0;i<n;i++)
{
scanf("%d",&arr[i]);
}
int min,max;
min=arr[0];
max=arr[0];
for(i=0;i<n;i++)
{
if (min > arr[i]) min = arr[i];
if (max < arr[i]) max = arr[i];
}
printf("%d %d",max,min);
return 0;
}