首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

if语句与scanf()语句的对调?解决方案

2012-03-22 
if语句与scanf()语句的对调?#includestdio.hvoidmain(){intn,minprintf( Inputastringintegers:\n )

if语句与scanf()语句的对调?
#include   <stdio.h>
void   main()
{
int   n,min;
printf( "Input   a   string   integers:\n ");
scanf( "%d ",&n);
min=n;
while(n)
{
                  if(n <min)
min=n;
                                    scanf( "%d ",&n);
}
printf( "The   min   is   %d\n ",min);
}

参考书上说:

循环体中的if语句与scanf()语句的顺序不能对调,因为循环体内要先比较,把已输入的数据处理了,再输入新数据。
但是我将if语句与scanf()语句调换后,并未出错,这是为什么?

[解决办法]
对调后

你试试输入
1
2
3
0

结果是 0

明显是错的
[解决办法]
问题在于:输入0时的处理
1.如果认为输入的0,是参与比较的数字,则调换if语句和scanf语句;
2.如果认为输入的0,是结束输入数字,不参与比较,则不能调换if语句和scanf语句。

热点排行
Bad Request.