标题:一个关于年月的程序
只看楼主
计院人
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2006-10-15
 问题点数:0 回复次数:24 
一个关于年月的程序

新学C,遇到困难
我编的一个关于年月的问题,可是每次随便输入一对数字输出的都是润年,并且马上WINDOWS会出现出错,找了半天也没找出错误,还请大侠们能帮帮忙
#include <stdio.h>
void main()
{
int year,month,days;
char season,leap;
char spring,summer,autumn,winter; //是不是定义这些字符串的时候出错?
char runnian,pingnian;
printf("input the year(year>0) and month(1<=month<=12):");
scanf("%d%d",&year,&month);
if(year>0)
{if("year/4==0&&y/100!=0||year/400==0")
leap=runnian;
else
leap=pingnian;
}
else
printf("error year input! please reset!");

if(month>=1&&month<=12)
{
if(month>=3&&month<=5)
season=spring;
if(month>=6&&month<=8)
season=summer;
if(month>=9&&month<=11)
season=autumn;
else
season=winter;
}
else
printf("error month input! please reset!"); // 出错
switch(month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days=31;
case 4:
case 6:
case 9:
case 11:
days=30;
case 2:
if(leap=runnian)
days=29;
else
days=28;
}

if(leap==runnian)
printf("该年是润年\n");
else
printf("该年是平年\n");
printf("季度是:%s\n",season);
printf("这个月的天数是:%d",days);
}

[此贴子已经被作者于2006-10-15 16:41:27编辑过]

搜索更多相关主题的帖子: spring void include autumn summer 
2006-10-15 16:39
C语言学习者
Rank: 4
等 级:贵宾
威 望:13
帖 子:1278
专家分:0
注 册:2006-9-26
得分:0 
有没有写错程序

谁有强殖装甲第二部,可以Q我460054868
2006-10-15 16:43
计院人
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2006-10-15
得分:0 
以下是引用C语言学习者在2006-10-15 16:43:57的发言:
有没有写错程序

应该没错吧,但是就是运行到一半就出错,不知道什么原因


2006-10-15 16:47
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
得分:0 
好多错误呀!
其中char spring,summer,autumn,winter;

改为 char *spring="spring",*summer="summer",*autumn="autumn",*winter="winter";

其中char season
改为 char *season;

..还有许多,我就写2个,你好好看看书

My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2006-10-15 16:50
计院人
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2006-10-15
得分:0 
以下是引用卧龙孔明在2006-10-15 16:50:06的发言:
好多错误呀!
其中char spring,summer,autumn,winter;

改为 char *spring="spring",*summer="summer",*autumn="autumn",*winter="winter";

其中char season
改为 char *season;

..还有许多,我就写2个,你好好看看书

呵呵,见笑了啊,刚学了没几天,好多东西都不熟,还请大侠能多指教,让小弟能有进步
这个程序在那些定义的时候我也觉得不对,但不知道怎么改。看看你改的用指针,的确有道理。
如果这个程序还有除了指针方面什么错误的话,还请帮我指出来,谢谢了


2006-10-15 17:05
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
得分:0 
好,等一下,我发出正确的程序

My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2006-10-15 17:09
计院人
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2006-10-15
得分:0 
以下是引用卧龙孔明在2006-10-15 17:09:33的发言:
好,等一下,我发出正确的程序

期待中。。。
先谢谢了!


2006-10-15 17:11
unicorn
Rank: 4
等 级:贵宾
威 望:14
帖 子:1066
专家分:0
注 册:2005-10-25
得分:0 

你的程序毛病很多...自己有时间改善一下吧

#include <stdio.h>
void main()
{
int year,month,days;
bool leap=0;
char *season;
printf(\"input the year(year>0) and month(1<=month<=12):\");
scanf(\"%d%d\",&year,&month);
if(year>0)
{if(year/4==0&&year/100!=0||year/400==0)
leap=1;
else
leap=0;
}
else
printf(\"error year input! please reset!\");

if(month>=1&&month<=12)
{
if(month>=3&&month<=5)
season=\"spring\";
if(month>=6&&month<=8)
season=\"summer\";
if(month>=9&&month<=11)
season=\"autumn\";
if(month>11&&month<3)
season=\"winter\";
}
else
printf(\"error month input! please reset!\");
switch(month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days=31;break;
case 4:
case 6:
case 9:
case 11:
days=30;break;
case 2:
if(leap)
{days=29;break;}
else
{days=28;break;}
}

if(leap)
printf(\"该年是润年\n\");
else
printf(\"该年是平年\n\");
printf(\"季度是:%s\n\",season);
printf(\"这个月的天数是:%d\",days);
}


unicorn-h.spaces. ◇◆ sava-scratch.spaces.  noh enol ! pue pu!w hw u! shemle aq ll!m noh 
2006-10-15 17:25
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
得分:0 

#include <stdio.h>
int main() /*不应该用void,具体请看其它资料*/
{
int year,month,days;
int leap=0; /*1.闰年 0.平年 默认为平年*/
char *season;
printf("input the year(year>0) and month(1<=month<=12):");
scanf("%d%d",&year,&month);
if(year>0)
{if(year/4==0 && year/100!=0 || year/400==0) /*表达式不要放在""内*/
leap=1;
}
else
{ printf("error year input! please reset!"); return; }

if(month>=1 && month<=12)
{
if(month>=3 && month<=5)
season="spring"; /*直接用字符串附值*/
else {if(month>=6 && month<=8)
season="summer"; /*直接用字符串附值*/
else {if(month>=9 && month<=11)
season="autumn"; /*直接用字符串附值*/
else
season="winter"; /*直接用字符串附值*/
} } }
else
{ printf("error month input! please reset!"); return; }
switch(month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days=31; break; /*一定要写break*/
case 4:
case 6:
case 9:
case 11:
days=30; break;
case 2:
if(leap) {
days=29; break;
}
else
days=28;
}

if(leap)
printf("该年是润年\n");
else
printf("该年是平年\n");
printf("季度是:%s\n",season);
printf("这个月的天数是:%d",days);
getch();
return; /*最好加上*/

}


My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2006-10-15 17:33
计院人
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2006-10-15
得分:0 
以下是引用卧龙孔明在2006-10-15 17:33:12的发言:

#include <stdio.h>
int main() /*不应该用void,具体请看其它资料*/
{
int year,month,days;
int leap=0; /*1.闰年 0.平年 默认为平年*/
char *season;
printf("input the year(year>0) and month(1<=month<=12):");
scanf("%d%d",&year,&month);
if(year>0)
{if(year/4==0 && year/100!=0 || year/400==0) /*表达式不要放在""内*/
leap=1;
}
else
{ printf("error year input! please reset!"); return; }

if(month>=1 && month<=12)
{
if(month>=3 && month<=5)
season="spring"; /*直接用字符串附值*/
else {if(month>=6 && month<=8)
season="summer"; /*直接用字符串附值*/
else {if(month>=9 && month<=11)
season="autumn"; /*直接用字符串附值*/
else
season="winter"; /*直接用字符串附值*/
} } }
else
{ printf("error month input! please reset!"); return; }
switch(month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days=31; break; /*一定要写break*/
case 4:
case 6:
case 9:
case 11:
days=30; break;
case 2:
if(leap) {
days=29; break;
}
else
days=28;
}

if(leap)
printf("该年是润年\n");
else
printf("该年是平年\n");
printf("季度是:%s\n",season);
printf("这个月的天数是:%d",days);
getch();
return; /*最好加上*/

}


哦,一看不知道,看了吓一跳,谢谢你的指点,还有unicorn 的代码
今天受益匪浅啊!呵呵,我会仔细看的!


2006-10-15 17:40



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-96515-1-1.html




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

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