wang815309286 发表于 2016-9-1 18:22:49

为什么while (scanf("%d-%d",&i,&j)==1)不能循环?

#include<stdio.h>
int main(void)
{
        int i,j;
        float num={
        {=31.3,35.5,58.7,49.6,55.5},      //2014年12个月份的PM2.5的数值
        {59.8,54.9,33.1,38.2,26.6,20.5,27.8,38.5,41.5,44.7,38.1,41.5},                //2015年12个月份PM2.5的数值
        {34.9,36.4,47.5,37.9,30.6,23.4,26.6,34.3}                     // 2016年12个月份PM2.5的数值
        };
        printf("请输入查询年月份(年-月):");
       while (scanf("%d-%d",&i,&j)==1)                                //输入年月,显示出当年当月的PM2.5的数值
       {
               if(i>=2014&&i<=2016&&j>=1&&j<=12)
               {
               printf("%.2f\n",num);
               printf("请输入查询年月份(年-月):");
               }
               else
               printf("shu ju cuo wu!\n");
               printf("请输入查询年月份(年-月):");
       }
       printf("done\n");
       return 0;
}
就是我想输入年月,显示数据,然后循环,可是找了几遍就是找不到问题所在,求教各位大神!

mingcxx 发表于 2016-9-1 20:15:55

行11改为:while (scanf("%d-%d",&i,&j)==2)

38299676 发表于 2016-9-1 20:19:14

scanf 的返回值是输入成功变量的个数,你有2个成功的变量 所以 应该 改成楼上的条件

wang815309286 发表于 2016-9-2 00:16:38

38299676 发表于 2016-9-1 20:19
scanf 的返回值是输入成功变量的个数,你有2个成功的变量 所以 应该 改成楼上的条件

感谢~~
页: [1]
查看完整版本: 为什么while (scanf("%d-%d",&i,&j)==1)不能循环?