C语言:输入10个数,输出最大和最小值,用while语句
答案:2 悬赏:30
解决时间 2021-12-21 13:55
- 提问者网友:情系雨樱花
- 2021-12-20 17:24
#include
int main ()
{ double i ,max,min,num; // i为输入数的个数,num为输入的数字
printf("输入十个数:");
// scanf("%lf",&num) ;
max=min=num;
i=1;
while(i <11){
scanf("%lf",&num);
if(max max=num;
if(min>num)
min=num;
i++;
}
printf("最大数为:%.0lf\n最小数为:%.0lf",max,min) ;
return 0;
}
第四行没有的时候,为什么当我输入 1 2 3 4 5 6 7 8 9 10 输出的最大值为10;而最小值为0;
第四行有的时候,输入1 2 3 4 5 6 7 8 9 10 输出的最大值为10;最小值为1
请大神解救....
最佳答案
- 二级知识专家网友:初心未变
- 2021-12-20 18:09
// scanf("%lf",&num) ;
max=min=num;//num没有初始值,他的值不是确定的,出现什么都可能
全部回答
- 1楼网友:单身小柠`猫♡
- 2021-12-20 19:02
看了楼上的程序,感觉都不错,不过还是有一定的繁琐的。这与c语言的效率不符。而且既然楼主向我的团队求助了,我不能不写一个。
#include
int main()
{
int num[10]; //用来接收10个数
int max,min; //用来代表最大值的位数和最小值的位数
int max_num,min_num; //用来存放比较时两个最值的中间变量
int i=0;
printf("请输入10个实数:\n“);
scanf("%d",&num[i++]); //先接收1个数存入数组num中
max_num=num[0];
min_num=num[0];
while(i<10)
{
scanf("%d",&num[i]); //接收剩余9个数存入数组num中
getchar();//用来接收回车
if(max_numnum[i]) min_num=num[i];//找出最小值
i++
}
max=1;
while(max_num/=10) max++;
//求几位数max_num/=10等价于max_num=max_num/10
min=1;
while(min_num/=10) min++;
printf("10个数中最大值是一个%d位数",max);
printf("10个数中最小值是一个%d位数",min);
system("pause"); //将程序驻留在显示器上,按任意键结束
return 0;
}
我要举报
大家都在看
推荐资讯