| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 397 人关注过本帖
标题:修改程序大神请进啊
只看楼主 加入收藏
qwe723823252
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2013-11-8
结帖率:33.33%
收藏
已结贴  问题点数:20 回复次数:4 
修改程序大神请进啊
程序代码:

 #include<stdio.h>
#include<stdlib.h>
int main()
{
int year,a,b,c,n,m,s,i=1;
char p = 0;
while(1)
{
if(i==1) printf("请输入年份!\n");
if(i>1)
{
printf("继续查询请按y,其他键退出!\n");
scanf("%c",&p);
if(p!='y') exit(0);
printf("请输入年份!\n"); //此数也可以加个system("cls");
}
scanf("%d",&year);
getchar();//接受回车
printf("\t\t\t%d年\n",year);
a=((year-1)+(year-1)/4-(year-1)/100+(year-1)/400+1)%7;
for(n=1;n<=12;n++)
{
printf("%d月\n\n",n);
printf("日\t一\t二\t三\t四\t五\t六\n");
if(n==1)
for(m=0;m<a;m++) printf("\t");
else
{
a=(a+s%7)%7;
for(m=0;m<a;m++)
printf("\t");
}
switch(n)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:s=31;break;
case 4:
case 6:
case 9:
case 11:s=30;break;
case 2:
if(((year%4==0)&&(year%100!=0))||(year%400==0)) s=29;
else s=28; break;
}
for(b=1;b<=s;b++)
{
printf("%d\t",b);
c=a+b;
if(c%7==0) printf("\n");
}
printf("\n\n");
}//for结束
i++;//改变i的值,使i满足i>1
}//while结束
system ("pause");
return 0;
}
谁能帮我改成这样的显示方式啊,改成年月查询的程序界面要求如下:
“请输入要查询的年份和月份(格式:年份-月份)”
如用户输入:2013-10
搜索更多相关主题的帖子: color 
2013-11-08 23:32
qwe723823252
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2013-11-8
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册
2013-11-08 23:34
qwe723823252
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2013-11-8
收藏
得分:0 
需要这种方式显示出来 怎么浓啊
2013-11-08 23:34
唐书豪
Rank: 2
等 级:论坛游民
帖 子:28
专家分:52
注 册:2013-5-10
收藏
得分:10 
你这个能先把程序整好点么,看的非常费劲
#include<stdio.h>
#include<stdlib.h>

int main()
{
    int year,a,b,c,n,m,s,i=1;
    char p = 0;
    while(1)
    {
        if(i==1)
        {
            printf("请输入年份!\n");
        }
        if(i>1)
        {
            printf("继续查询请按y,其他键退出!\n");
            scanf("%c",&p);
            
            if(p!='y')
            {
                exit(0);
            }
            
            printf("请输入年份!\n"); //此数也可以加个system("cls");
        }
        
        scanf("%d",&year);
        getchar();//接受回车
        printf("\t\t\t%d年\n",year);
        a=((year-1)+(year-1)/4-(year-1)/100+(year-1)/400+1)%7;
        
        for(n=1;n<=12;n++)
        {
            printf("%d月\n\n",n);
            printf("日\t一\t二\t三\t四\t五\t六\n");
            if(n==1)
            {
                for(m=0;m<a;m++)
                {
                    printf("\t");
                }
            }
            else
            {
                a=(a+s%7)%7;
                for(m=0;m<a;m++)
                {
                    printf("\t");
                }
            }
        
            switch(n)
            {
                case 1:
                case 3:
                case 5:
                case 7:
                case 8:
                case 10:
                case 12:s=31;break;
                case 4:
                case 6:
                case 9:
                case 11:s=30;break;
                case 2:
                {
                    if(((year%4==0)&&(year%100!=0))||(year%400==0))
                    {
                        s=29
                    };
                    else
                    {
                        s=28;
                    }
                }break;
             }
            
            for(b=1;b<=s;b++)
            {
                printf("%d\t",b);
                c=a+b;
                if(c%7==0)
                {
                    printf("\n");
                }
            }
            
            printf("\n\n");
        }//for结束
        
        i++;//改变i的值,使i满足i>1
    }//while结束
        
    system ("pause");
   
    return 0;
 }
2013-11-09 00:31
pangshch
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:2
帖 子:443
专家分:1966
注 册:2013-4-9
收藏
得分:10 
我给你修改了一下, 删除了几个多余的变量, 调整了一下while()循环,
另外也实现了查询指定年月
程序代码:
#include<stdio.h>

 #include<stdlib.h>

 int main()

 {

 unsigned int year,a,n,s,i=1;          // 删除了多余变量
 char p = 0;

 while(1)

 {

 printf("请输入要查询的年月(年-月)!\n");      // 输入年月
 scanf("%d-%d",&year,&n);

 getchar();

 if (year < 0 || n < 0 || n > 12) {            
     printf("输入错误\n");
     exit(0);

 }

 printf("\t\t\t%d年 %d月\n\n",year,n);

 a=((year-1)+(year-1)/4-(year-1)/100+(year-1)/400+1)%7;

 printf("日\t一\t二\t三\t四\t五\t六\n");


 switch(n)

 {

 case 1: case 3: case 5:

 case 7: case 8: case 10:

 case 12:s=31;break;

 case 4: case 6:

 case 9: case 11:s=30;break;

 case 2:

 if(((year%4==0)&&(year%100!=0))||(year%400==0)) s=29;

 else s=28; break;

 }

 if(n==1)                                     // 这里移动了位置
 for(i=0;i<a;i++) printf("\t");                // 所有for循环只用变量i;
 else

 {

 a=(a+s%7)%7;

 for(i=0;i<a;i++)

 printf("\t");

 }

 for(i=1;i<=s;i++)

 {

 printf("%d\t",i);

 if((a+i)%7==0) printf("\n");

 }

 printf("\n\n");

 printf("继续查询请按y,其他键退出!\n");                    // 确认继续输入放在后面
 if((p = getchar()) != 'y') break;

 }// while 结束


 return 0;

 }


2013-11-09 08:20
快速回复:修改程序大神请进啊
数据加载中...
 
   



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

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