永发信息网

新手c语言的问题

答案:4  悬赏:60  手机版
解决时间 2021-04-11 12:52

问题:输入三个正整数,分别代表一个日期的年、月、日,计算并在屏幕上显示输入日期后一天的年、月、日。例如:

输入:2007 2 28

输出:2007 3 1

我这样编写

#include <stdio.h>
main()
{
int i,j,k,l;
scanf("%d,%d,%d",&i,&j,&k);
if(j==1||3||5||7||8||10&&k==31)
j=j+1;
k=1;

if(j==4||6||9||11&&k==30)
j=j+1;
k=1;

if(i%4==0&&i%100!=0||i%400==0)
l=0;
if(i%4==0&&i%100!=0||i%400==0&&j==2&&k==28)
k=29;
if(l!=0&&j==2&&k==28)
j=3;
k=1;
if(j==12&&k==31)
{

i=i+1;
j=1;
k=1;
}

else
{

j=j;
k=k+1;
}


printf("%d\t%d\t%d\n",i,j,k);
}

输出错误

最佳答案

if(j==1||3||5||7||8||10&&k==31) 这里不能这样写啊囧。。要写成


if((j==1||j==3||j==5||j==7||j==10)&&k==31)


每一个条件都要写的。



建议写成switch型,更好看一些:


switch(j)


{


case 1:


case 3:


case 5:


case 7:


case 8:


case 10:


case 12:


if(k==31)


{


//...


}


break;



case 2:


//...


// 以前其他case


default:


//...


}

全部回答

你的程序小问题比较多。

1、if else 下的大括号都没加。

2、if条件的小括号也缺少。

if(j==1||3||5||7||8||10&&k==31)不能这样写哟

if(j==1||j==3||j==5.....

不能这么写的 if(j==1||3||5||7||8||10&&k==31)

必须 if(j==1||j==3||j==5||j==7||j==8||j==10||j==12&&k==31)

建议用switch ...case...来写。这样写太晕。

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
天天向上几点演哇?
什么情况下可以说认识一个人了?
tcl 电视L50F3700A ,在自带的一个应用商店里
九阳电磁炉多少钱
白米社区社会捐助工作站我想知道这个在什么地
财繁体字多少画,月翰这个名字!打多少分
现今法兰西PK拿破仑帝国,土地面积少了多少
艺人坊造型地址在什么地方,想过去办事
谁用过多普达P4450 的 能给我说一下 吗 感觉
喝了参汤多久不能吃萝卜?
属蛇的和属什么的最配
电视剧男人帮里面左永邦的手机铃声叫什么,?
比一个锐角多90°的角是A.钝角B.直角C.平角D.
古代诗歌的定义和分类是什么
佟兴宾馆售票处我想知道这个在什么地方
推荐资讯
QQ邮箱的贺卡《11月11日》插曲叫什么
关于勤奋努力的句子,有关勤奋古诗词
突然想到前女友了,有点难过,但毕竟过去了,
QQ空间的停车位多少天不登陆才会变成垃圾厂?
地板砖发黄了怎么清洗,衬衫领口发黄怎么样才
丧尸类型的.或者比较恶心的电影有哪些
饶雪漫的离歌3出来没有?
如果没有烦恼的人会变怎样…?
GIF怎样基本操作
Therean English party in our school tomorr
妈妈的血型是RH阴性和爸爸是A性血会生出什么
丝路英雄 怎么看地图上别的玩家的声望?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?