最大最小值要初始化的,而且应该是max,min和a比较,和n有啥关系
int n,a,i,max,min;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a);
if(i==0)
max = min = a;
else
{
if(max < a)
max = a;
if(min > a)
min = a;
}
}
printf("max=%d,min=%d",max,min);
你这逻辑有问题,你试一下下面这段
if(a > max){
max = a;
}
if(a < min){
min = a;
}
问一下,这个题目是不是说输入n个整数来比较这n个数得出最大最小值,而不是将n也放进去比较
#include<stdio.h>
int main( )
{
int n,i,j,num,max,min;
scanf("%d", &n);
scanf("%d", &num);
max=num;
min=num;
for(i=1; i<n;i++)
{
scanf("%d",&num);
if(max<num)
max=num;
if(min>num)
min=num;
}
printf("max=%d, min=%d\n", max,min);
}
n为要输入的正整数的个数,不能用他来和a比较得出输入的n个数的最大值,最小值,而应该是用max变量和min变量不断赋值后再和后续的a比较得出最大值和最小值,修改如下:
#include <stdio.h>
int main(void){
int i,n,a,max=0,min;
scanf("%d",&n);
for(i=1;i<=n;i++){
scanf("%d",&a);
if(i==1){
max=a;
min=a;
}else{
if(min>a){
min=a;
}
if(max<a){
max=a;
}
}
}
printf("max=%d,min=%d",max,min);
return 0;
}
你是比较那个数的大小,不是拿n值去比较的:
#include<stdio.h>
int main( )
{
int n,a,i;
int max = -10000,min = 10000;//把最大最小值先初始化为极值进行判断
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a);
if(max < a)
max = a;
if(min > a)
min = a;
}
printf("max=%d,min=%d",max,min);
}
看合你意不?
#include<stdio.h>
#include<limits.h>
int main()
{
int n, min = INT_MAX, max = INT_MIN;
scanf("%d", &n);
if(n<=0)return -1;
int arrn[n];
for (int i = 0; i < n; i++)
{
scanf("%d", &arrn[i]);
if (arrn[i] <= min)
{
min = arrn[i];
}
if (arrn[i] >= max)
{
max = arrn[i];
}
}
printf("最大值是:%d\n最小值是:%d\n", max, min);
return 0;
}
中间判断逻辑有问题,是数组内的元素大小判断,跟n没啥关系,可以尝试改成下面这样
int n,a,i,max,min;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a);
if(i==0)
max = min = a;
else
{
if(max < a)
max = a;
if(min > a)
min = a;
}
}
printf("max=%d,min=%d",max,min);
还有一种情况:a=n