做了一道C语言的题,出错了,不知道怎么改,急速求教!!!
#include<stdio.h>main(){printf("请输入一个日期(年/月/日)");intyy,mm,dd,emds,yyy,mmm,ddd;yyy=yy+...
#include <stdio.h>
main()
{
printf("请输入一个日期(年/月/日)");
int yy,mm,dd,emds,yyy,mmm,ddd;
yyy = yy + 1;
mmm = mm + 1;
ddd = dd + 1;
scanf("%d/%d/%d",&yy,&mm,&dd);
switch (mm)
{
case 1 :
emds = 31;
break;
case 2 :
emds = 28;
break;
case 3 :
emds = 31;
break;
case 4 :
emds = 30;
break;
case 5 :
emds = 31;
break;
case 6 :
emds = 30;
break;
case 7 :
emds = 31;
break;
case 8 :
emds = 31;
break;
case 9 :
emds = 30;
break;
case 10 :
emds = 31;
break;
case 11 :
emds = 30;
break;
case 12 :
emds = 31;
break;
}
if (yy<1000||yy>9999)
{
printf("\n年输入数据出错,请输入4位正整数\n");
}
else
{
if (mm<1||mm>12)
{
printf("\n月份输入数据出错,请输入1~12的正整数\n");
}
else
{
if (dd<1||dd>emds)
{
printf("\n日期输入数据出错,请输入1~31的正整数\n");
}
else
{
if(dd=emds&&mm=12)
{
printf("\n%d年%d月%d日的后一天是%d年1月1日\n",yy,mm,dd,yyy);
}
else
{
if(dd=emds&&mm<12)
{
printf("\n%d年%d月%d日的后一天是%d年%d月1日\n",yy,mm,dd,yy,mmm);
}
else
{
printf("\n%d年%d月%d日的后一天是%d年%d月%d日\n",yy,mm,dd,yy,mm,ddd);
}
}
}
}
}
}
初学者,函数就会那么几个,按照题目的要求也都做出来了,但是提示
(73) : warning C4305: '=' : truncation from 'const int' to 'bool'
(73) : error C2106: '=' : left operand must be l-value
(92) : warning C4508: 'main' : function should return a value; 'void' return type assumed
应该是函数和赋值的错误...可能...嘛,没搞明白,求高手解答,急急急!!! 展开
main()
{
printf("请输入一个日期(年/月/日)");
int yy,mm,dd,emds,yyy,mmm,ddd;
yyy = yy + 1;
mmm = mm + 1;
ddd = dd + 1;
scanf("%d/%d/%d",&yy,&mm,&dd);
switch (mm)
{
case 1 :
emds = 31;
break;
case 2 :
emds = 28;
break;
case 3 :
emds = 31;
break;
case 4 :
emds = 30;
break;
case 5 :
emds = 31;
break;
case 6 :
emds = 30;
break;
case 7 :
emds = 31;
break;
case 8 :
emds = 31;
break;
case 9 :
emds = 30;
break;
case 10 :
emds = 31;
break;
case 11 :
emds = 30;
break;
case 12 :
emds = 31;
break;
}
if (yy<1000||yy>9999)
{
printf("\n年输入数据出错,请输入4位正整数\n");
}
else
{
if (mm<1||mm>12)
{
printf("\n月份输入数据出错,请输入1~12的正整数\n");
}
else
{
if (dd<1||dd>emds)
{
printf("\n日期输入数据出错,请输入1~31的正整数\n");
}
else
{
if(dd=emds&&mm=12)
{
printf("\n%d年%d月%d日的后一天是%d年1月1日\n",yy,mm,dd,yyy);
}
else
{
if(dd=emds&&mm<12)
{
printf("\n%d年%d月%d日的后一天是%d年%d月1日\n",yy,mm,dd,yy,mmm);
}
else
{
printf("\n%d年%d月%d日的后一天是%d年%d月%d日\n",yy,mm,dd,yy,mm,ddd);
}
}
}
}
}
}
初学者,函数就会那么几个,按照题目的要求也都做出来了,但是提示
(73) : warning C4305: '=' : truncation from 'const int' to 'bool'
(73) : error C2106: '=' : left operand must be l-value
(92) : warning C4508: 'main' : function should return a value; 'void' return type assumed
应该是函数和赋值的错误...可能...嘛,没搞明白,求高手解答,急急急!!! 展开
展开全部
=是赋值符号,要用==来进行比较
算法的错误也很多,
int yy,mm,dd,emds,yyy,mmm,ddd;
yyy = yy + 1;
mmm = mm + 1;
ddd = dd + 1; yy,mm,dd没赋值,则变量储存的就是垃圾值,加1再赋给yyy,ddd,mmm是不对的,而且yyy,ddd,mmm也是没必要设的变量
后面的if语句太复杂,直接用else if不就行了
算法设计没有考虑闰年的情况,修改过了,自己看看
#include <stdio.h>
int main()
{
printf("请输入一个日期(年/月/日)");
int yy,mm,dd,emds;
int l=0;/*考虑闰年*/
scanf("%d/%d/%d",&yy,&mm,&dd);
l=(yy%4==0)&&(yy%100!=0)||(yy%400==0);
switch (mm)
{
case 1 :
emds = 31;
break;
case 2 :
emds = 28+l;
break;
case 3 :
emds = 31;
break;
case 4 :
emds = 30;
break;
case 5 :
emds = 31;
break;
case 6 :
emds = 30;
break;
case 7 :
emds = 31;
break;
case 8 :
emds = 31;
break;
case 9 :
emds = 30;
break;
case 10 :
emds = 31;
break;
case 11 :
emds = 30;
break;
case 12 :
emds = 31;
break;
}
if (yy<1000||yy>9999)
{
printf("\n年输入数据出错,请输入4位正整数\n");
}
else if (mm<1||mm>12)
{
printf("\n月份输入数据出错,请输入1~12的正整数\n");
}
else if (dd<1||dd>emds)
{
printf("\n日期输入数据出错,请输入1~31的正整数\n");
}
else if(dd==emds&&mm==12)
{
printf("\n%d年%d月%d日的后一天是%d年1月1日\n",yy,mm,dd,yy+1);
}
else if(dd==emds&&mm<12)
{
printf("\n%d年%d月%d日的后一天是%d年%d月1日\n",yy,mm,dd,yy,mm+1);
}
else
{
printf("\n%d年%d月%d日的后一天是%d年%d月%d日\n",yy,mm,dd,yy,mm,dd+1);
}
return 0;
}
算法的错误也很多,
int yy,mm,dd,emds,yyy,mmm,ddd;
yyy = yy + 1;
mmm = mm + 1;
ddd = dd + 1; yy,mm,dd没赋值,则变量储存的就是垃圾值,加1再赋给yyy,ddd,mmm是不对的,而且yyy,ddd,mmm也是没必要设的变量
后面的if语句太复杂,直接用else if不就行了
算法设计没有考虑闰年的情况,修改过了,自己看看
#include <stdio.h>
int main()
{
printf("请输入一个日期(年/月/日)");
int yy,mm,dd,emds;
int l=0;/*考虑闰年*/
scanf("%d/%d/%d",&yy,&mm,&dd);
l=(yy%4==0)&&(yy%100!=0)||(yy%400==0);
switch (mm)
{
case 1 :
emds = 31;
break;
case 2 :
emds = 28+l;
break;
case 3 :
emds = 31;
break;
case 4 :
emds = 30;
break;
case 5 :
emds = 31;
break;
case 6 :
emds = 30;
break;
case 7 :
emds = 31;
break;
case 8 :
emds = 31;
break;
case 9 :
emds = 30;
break;
case 10 :
emds = 31;
break;
case 11 :
emds = 30;
break;
case 12 :
emds = 31;
break;
}
if (yy<1000||yy>9999)
{
printf("\n年输入数据出错,请输入4位正整数\n");
}
else if (mm<1||mm>12)
{
printf("\n月份输入数据出错,请输入1~12的正整数\n");
}
else if (dd<1||dd>emds)
{
printf("\n日期输入数据出错,请输入1~31的正整数\n");
}
else if(dd==emds&&mm==12)
{
printf("\n%d年%d月%d日的后一天是%d年1月1日\n",yy,mm,dd,yy+1);
}
else if(dd==emds&&mm<12)
{
printf("\n%d年%d月%d日的后一天是%d年%d月1日\n",yy,mm,dd,yy,mm+1);
}
else
{
printf("\n%d年%d月%d日的后一天是%d年%d月%d日\n",yy,mm,dd,yy,mm,dd+1);
}
return 0;
}
展开全部
1.c语言中判断两个值是否相等用“==”双等号,不是“=”
2.在main前加个void,最好!不加也可以!
2.在main前加个void,最好!不加也可以!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
还在单身的一个人唱情歌吗?
当你孤单的时候你会想起谁?
是他还是她?
yy频道7450,让你忘记他和她,让你重新找到新的伴侣!
当你孤单的时候你会想起谁?
是他还是她?
yy频道7450,让你忘记他和她,让你重新找到新的伴侣!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询