| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1523 人关注过本帖
标题:程序输入 我只安排了3个输入数据 但却需要输入4个数字才可以运行
只看楼主 加入收藏
大连实德
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2017-6-23
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
程序输入 我只安排了3个输入数据 但却需要输入4个数字才可以运行
#include<stdio.h>

int day_of_year(int year, int month, int day)
{
   int days;
   int tab[2][12]={
   {31,28,31,30,31,30,31,30,31,30,31,30},
   {31,29,31,30,31,30,31,30,31,30,31,30}
   };
   int i;
   int leap;
   leap=(year%4==0&&year%100!=0)||year%400==0;  //分辨是否为闰年
   
       for(i=1;i<month;i++){
           days+=tab[leap][i];
       }
       days+=day;    //计算天数
      
   return days;   
}

int main()
{
 while(1)
 {
     printf("Please enter the year-month-day:");
     int year;
     int month;
     int day;
     scanf("%d %d %d ",&year ,&month ,&day);   //就是这里的问题,我只安排了3个输入,为什么要输入四次。
     int days=day_of_year(year,month,day);
     printf("The date %d_%d_%d is %d days.\n",year,month,day,days);
 }
 
 }
搜索更多相关主题的帖子: return include 
2017-06-23 13:53
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:20 
scanf("%d%d%d",&year ,&month ,&day);  这样

DO IT YOURSELF !
2017-06-23 13:55
大连实德
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2017-6-23
收藏
得分:0 
回复 2楼 wp231957
按照您的方法,我试了一下,得到了正确的结果,谢谢您。然后我又尝试了几种情况,发现最后一个%d之后只要没有空格就可以正常工作,您能解释一下这个问题吗?
2017-06-23 14:07
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
回复 3楼 大连实德
我的意见就是scanf不要乱加修饰符

就你这个例子  你可以再次测试一下(我没有测试) 你应该是输入 num space num space num space 就可以了 后面不用跟第四个数据

如果这样就可以了的话 那么最后一个space 明显是多此一举

DO IT YOURSELF !
2017-06-23 14:16
大连实德
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2017-6-23
收藏
得分:0 
回复 4楼 wp231957
谢谢您了
2017-06-23 14:54
快速回复:程序输入 我只安排了3个输入数据 但却需要输入4个数字才可以运行
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.036150 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved