| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 690 人关注过本帖
标题:c语言再次求错,小爷我改完了17个错误还是运行失败,扛不住了。。。
只看楼主 加入收藏
铁甲依然在
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2010-4-1
结帖率:40%
收藏
已结贴  问题点数:10 回复次数:5 
c语言再次求错,小爷我改完了17个错误还是运行失败,扛不住了。。。
原题在此: 日历显示
试设计一个程序显示2007年日历。用户可连续查看某月日历,直到键入‘N’或‘n’为止。 (2007年第一天为周一)
输出举例:
输出举例:
Enter month in 2007 to display calendar (1-12): 1
****************************************************
SUN    MON   TUE    WED    THU    FRI    SAT
          1      2        3      4       5       6   
7       8      9       10     11      12      13   
14     15     16       17     18      19      20
21     22     23       24     25      26      27  
28     29     30       31
Would you like to display another month (y/n) ? y
Enter month in 2007 to display calendar (1-12): 13
ERROR- Enter month in range of (1-12)!
Enter month in 2007 to display calendar (1-12): 5
****************************************************
SUN    MON   TUE    WED    THU    FRI    SAT
                  1       2        3      4       5
   6        7     8       9       10     11      12
13       14    15      16       17     18      19
20       21    22      23       24     25      26
27       28    29      30       31
Would you like to display another month (y/n) ? N


求解思路:本题需根据用户输入待查月份计算该月前几个月的总天数(如查看4月份日历,需计算前3个月的总天数),根据总天数和该年第一天是星期几,计算待查月份的第一天是星期几,由此控制在输出日历中首先输出几段“空白”,之后将该月中各日期依次输出到日历中(注意若某日期为“星期六”,输出该日期后应换行),直到该月所有日期全都输出为止。输出“是否继续查询信息”,若输入为“y”或“Y”则继续查询,输入为“n”或“N”结束查询,(可用while无限循环和break实现,也可用其他方法)
另外,应判断输入月份是否在“1”到“12”之间(可用while无限循环和break实现,也可用其他方法)
我的程序:
#include<stdio.h>                                                     /*1*/
void main()                                                             /*2*/                                                
{                                                                     /*3*/
    int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};                  /*12个月份*/  
int i,b=0,c,d=0,e=1,f,g; char y,n;                                             /*5*/
loop:printf("Enter month in 2007 to dispiay calendar(1-12):");      /*6*/   
     scanf("%d",i);                                                  /*7*/
     while(i>=1&&i<=12)                                             /*8*/
     {                                                                 /*9*/
         if(i=1) b=1;                                                  /*b是某一月份前的空格数*/
     else if(i>=2)                                                    /*11*/                                                   
         for(c=0;c<=i-2;c++)                                           /*12*/
         {d+=a[c];                                                    /*计算前i-1月总天数*/
         b=d%7+1;}g=7-b;                                                      /*14*/
         printf("****************************\n SUN MON TUE WED THU FRI SAT\n");/*15*/
         for(;e<=b;e++)                                                            /*16*/
             printf("    ");                                                     /*17*/
         for(f=1;f<=a[i-1];f++)                                                /*18*/                                            
         {if(f%7==g) printf("%4d\n",f);                                           /*若除7余7-b则换行*/
         else printf("%4d",f);}                                                   /*20*/
     }                                                                             /*21*/
     printf("Error-Enter month in range of(1-12)!");                                /*22*/
     printf("Woulde you like to display another month(y/n)?");                     /*23*/
     getchar();                                                              /*24*/
     if(y=getchar()) goto loop;                         /*25*/
         else printf("End");
                                       
}
嗯,我知道乱了点,方法有点笨


[ 本帖最后由 铁甲依然在 于 2010-4-14 15:42 编辑 ]
搜索更多相关主题的帖子: 失败 运行 c语言 
2010-04-14 15:14
铁甲依然在
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2010-4-1
收藏
得分:0 
运行时每次死循环

[ 本帖最后由 铁甲依然在 于 2010-4-14 15:57 编辑 ]
2010-04-14 15:19
beijingbbc
Rank: 1
等 级:新手上路
帖 子:11
专家分:2
注 册:2010-3-4
收藏
得分:2 
你活该,求教,你还小爷,。。。。。。。。。。
2010-04-14 15:26
mywaylgh
Rank: 8Rank: 8
来 自:厨房
等 级:蝙蝠侠
威 望:5
帖 子:188
专家分:729
注 册:2010-3-10
收藏
得分:2 
以下是引用beijingbbc在2010-4-14 15:26:11的发言:

你活该,求教,你还小爷,。。。。。。。。。。

不过还是救你下:)
 scanf("%d",i);
改为
 scanf("%d",&i);

人生就像茶几 上面放着许多杯具

人生也像厨房 里面总有一些洗具
2010-04-14 15:37
BINGQING
Rank: 2
来 自:武汉
等 级:论坛游民
帖 子:98
专家分:75
注 册:2010-3-29
收藏
得分:2 
我帮他试了下,还是不行
2010-04-14 21:42
ubuntulover
Rank: 4
等 级:业余侠客
帖 子:77
专家分:256
注 册:2010-4-9
收藏
得分:2 
今晚上喝醉了,明天再帮你想想
2010-04-14 21:46
快速回复:c语言再次求错,小爷我改完了17个错误还是运行失败,扛不住了。。。
数据加载中...
 
   



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

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