不用数组,只用循环语句如何用C语言写输入1~5五个数字,输出最大值最小值的程序

#include<stdio.h>
int main()
{
int num,i,max,min;
min=max=num;
for(i=1;i<6;i++)
{
scanf("%d",&num);
if(num>max)
{
max=num;
}
if(num<min)
{
min=num;
}
}
printf("max=%d min=%d",max,min);
return 0;
}
为什么运行结果是这样的

声明一个存放最大值的变量max,再声明一个存放最小值的变量min。输入第一个数字后,把它同时赋给max和min,以后每输入一个数字都和max、min分别比较,把比max大的赋给max,把比min小的赋给min,这样就保证max是所输入的数字中值最大的,而min是输入的数字中值最小的,最后输出max和min即可。代码如下:

#include "stdio.h"
#include "stdlib.h"
int main(int argc,char *argv[]){
int i,n,max,min;//用max记录输入数字中的最大值,min记录最小值
printf("Please input some Numbers(Other end,)...\n");
printf("(Input more than 5, only for the previous 5)\n");
for(i=0;i<5;i++){
if(scanf("%d",&n)!=1)//输入非数字则结束
break;
if(i>0 && i<5){
if(max<n)//保证max是所输入的数字中最大的
max=n;
if(min>n)//保证min是所输入的数字中最小的
min=n;
printf(" %d",n);
}
else
printf("Your input is:   %d",max=min=n);//第一个数字同时赋给max和min
}
if(i)
printf("\nThe MAX is %d\nThe MIN is %d\n",max,min);
else
printf("\nNo input digital...\n");
return 0;
}

运行样例如下:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-10-10
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int num=0,i,max,min;
    //min=max=num;
    for(i=1; i<6; i++)
    {
        scanf("%d",&num);
        if(i==1) {min=max=num;}
        if(num>max)
        {
            max=num;
        }
        if(num<min)
        {
            min=num;
        }
    }
    printf("max=%d min=%d",max,min);
    return 0;
}

本回答被网友采纳
第2个回答  2017-07-28
#include "stdio.h"
void main()
{
int a,b,c,d,e;
int max,min;
printf("请输入第一个数:");
scanf("%d",&a);
printf("请输入第二个数:");
scanf("%d",&b);
printf("请输入第三个数:");
scanf("%d",&c);
printf("请输入第四个数:");
scanf("%d",&d);
printf("请输入第五个数:");
scanf("%d",&e);
max=a>b?a:b; //判断a,b谁大,a大max=a,否则max=b;下面依次类推
max=max>c?max:c;
max=max>d?max:d;
max=max>e?max:e;
min=a<b?a:b;
min=min<c?min:c;
min=min<d?min:d;
min=min<e?min:e;
printf("max=%d\nmin=%d\n",max,min);
}
第3个回答  2015-10-10
第5行min=max=num;错误
你参数都没有赋初值怎么就好做这赋值运算,你要么就直接给min=0,max=0;追问

直接给min=0,max=0;最后输出min=0

相似回答