为什么,输出的不对,我是照着书上写的,c语言

问题描述

为什么,输出的不对,我是照着书上写的,c语言

#include "stdio.h"
#include "conio.h"
int main()
{
int day,month,year,sum,leap;
scanf("%d,%d,%d",&year,&month,&day);
switch(month)//先计算某月以前月份的天数
{
case 1: sum=0;break;
case 2: sum=31;break;
case 3: sum=59;break;
case 4: sum=90;break;
case 5: sum=120;break;
case 6: sum=151;break;
case 7: sum=181;break;
case 8: sum=212;break;
case 9: sum=243;break;
case 10: sum=273;break;
case 11: sum=304;break;
case 12: sum=334;break;
default: printf("data error");break;
}
sum = sum + day;
if( year%400 || (year%4 && year%100!=0) )
leap =1;
else
leap =0;
if(leap ==1 && month>2)
sum++;
printf("it is the %dth day.",sum);
}
比如输入2015 11 16
输出的竟是data errorit is the 133th day.
这明显不对啊

解决方案

看了一遍代码没看出问题,然后自己走了一下,发现是scanf()写错了,
改为scanf("%d %d %d",&year,&month,&day); 就可以了。

解决方案二:

改为scanf("%d %d %d",&year,&month,&day); 就可以了。去掉中间的逗号

解决方案三:

你输入11的时候已经计算了前11个月的天数 再加16 不是就不对了吗
switch(month-1)就好了

解决方案四:

看了一遍代码没看出问题,然后自己走了一下,发现是scanf()写错了,
改为scanf("%d %d %d",&year,&month,&day); 就可以了。

时间: 2024-12-31 19:43:30

为什么,输出的不对,我是照着书上写的,c语言的相关文章

printf-哪里错了哪里错了我是按照书上写的

问题描述 哪里错了哪里错了我是按照书上写的 main(){int shuzu[5]={14287};int ij;for(i=0;ifor(j=1;jif(shuzu[j-1]>shuzu[j]){int a=shuzu[j-1];shuzu[j-1]=shuzu[j];shuzu[j]=shuzu[j-1];}for(i=0;i<5;i++)printf(""%d ""shuzu[i]):}} 解决方案 int main(){int shuzu[5]=

源代码-按书上写了一段java捕获异常的代码,不知道问题出在哪里

问题描述 按书上写了一段java捕获异常的代码,不知道问题出在哪里 源代码如下: package com.Sixping.Ncre; public class Rethrow { public static void rt() throws Exception {//定义方法,抛出Exception类的异常 System.out.println("old exception in rt()"); throw new Exception("thrown from rt()&qu

源代码-按书上写了一段代码java异常处理,不知道为什么不能运行,求大神指教

问题描述 按书上写了一段代码java异常处理,不知道为什么不能运行,求大神指教 源代码如下: package com.Sixping.Ncre; import java.io.*; public class ExceptionCatch { public static void main(String[] args) { try { FileNotFoundException fis = new FileNotFoundException("text"); System.out.pri

我按照书上写了一段代码为什么报错呢?如何解决?

问题描述 错误1程序"d:用户目录我的文档VisualStudio2013ProjectsConsoleApplication1ConsoleApplication1objDebugConsoleApplication1.exe"不包含适合于入口点的静态"Main"方法D:用户目录我的文档VisualStudio2013ProjectsConsoleApplication1ConsoleApplication1CSCConsoleApplication1 解决方案

新手怎么思考c语言书上的例子

问题描述 新手怎么思考c语言书上的例子 c语言新手一枚,自学中,现在很不熟练. 面对书上稍微复杂一点的例子, 脑子里就一团浆糊.所以昨天开始就试着在敲例子前画程序流程图.然后再敲,请问这种方法是对的吗?如果不是或者有什么要补充的麻烦给我讲一下,谢谢啦! 解决方案 最好找一个懂程序的人教你下.看下人家是怎么写程序的. 我见过一些初学者遇到的困难,是因为他们完全是根据书本上写好的程序在模仿.但是这有一个问题,就是看不到程序从无到有的过程. 好比根据烧好的菜去研究烹饪或者根据画好的画去学习素描,这都是

c语言编程-这段C程序设计语言书上的代码,运行后按回车只换行并没有输出最长的行,为什么

问题描述 这段C程序设计语言书上的代码,运行后按回车只换行并没有输出最长的行,为什么 #include#define MAXLINE 1000int getline(char line[]int maxline);void copy(char to[]char from[]);main(){int len;int max;char line[MAXLINE];char longest[MAXLINE];max = 0;while ((len = getline(lineMAXLINE))>0)i

Eclipse控制台输出编号:1姓名:王丹性别:女部门:质量部怎么弄啊!书上的例我感觉能看懂啊 为什么一到自己打就无从下手了呢,感觉什么都不会了呢?

问题描述 Eclipse控制台输出编号:1姓名:王丹性别:女部门:质量部怎么弄啊!书上的例我感觉能看懂啊为什么一到自己打就无从下手了呢,感觉什么都不会了呢? 解决方案 解决方案二:publicclassName{publicstaticvoidmain(String[]args){System.out.println("编号:1");System.out.println("姓名:王丹");System.out.println("性别:女");Sy

我是java新手,刚学到泛型就有点朦了,请问为什么以下这个程序有书上说会有问题?

问题描述 rtpackagej2se;importjava.util.*;publicclasstest2{publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubCollection<Integer>collection=newArrayList<Integer>(Arrays.asList(1,2,3,4,5));Integer[]moreInts={6,7,8,9,10};collection.addA

static的一个问题,运行结果和书上说的不一样。

问题描述 static的一个问题,运行结果和书上说的不一样. #include void fun1(static int v) { printf("%dn",v); } int main(void) { fun1(50); fun1(100); return 0; } 解决方案 可能是书上搞错了吧,以实际编译/运行的结果为准. 如果没有 static 时,结果肯定是 50 和 100:但就算是有了 static,传入参数的值是多少,printf 中应该是多少,不会由 static 的影