C++编程问题,程序能成功编译,但是不出结果

这是我们学校期末的课程设计,题目要求是:由键盘输入一个日期,求出所对应的星期。
以下是我写的程序,能编译出来,但是我不知道哪里出问题了……求教!

#include<iostream.h>
int LeapYearNumber(int a);
int month_day_run(int month_day);
int month_day_ping(int month_day);

int LeapYearNumber(int a)
{
int i=0,j,k;
for(j=1;j<a;j++)
{
{
if((j%4==0)&&(j%100!=0)||(j%400==0)) //判断从0001年至所输入年份中的闰年
i++; //将所有闰年的个数累加
}
k=i; //k为从0001年至所输入年份中的闰年个数
return k;
}
}

int month_day_run(int month_day)
{
int b,B;
{
switch(b)
{
//此段代码的意义是计算输入年份中,当年的月份所对应的天数
case 1:B=0;break;
case 2:B=31;break;
case 3:B=60;break;
case 4:B=91;break;
case 5:B=121;break;
case 6:B=152;break;
case 7:B=182;break;
case 8:B=213;break;
case 9:B=244;break;
case 10:B=274;break;
case 11:B=305;break;
case 12:B=335;break;
}
}
month_day=B;
return month_day;
}

int month_day_ping(int month_day)
{
int b,B;
{
switch(b)
{
//此段代码的意义是计算输入年份中,当年的月份所对应的天数
case 1:B=0;break;
case 2:B=31;break;
case 3:B=59;break;
case 4:B=90;break;
case 5:B=120;break;
case 6:B=151;break;
case 7:B=181;break;
case 8:B=212;break;
case 9:B=243;break;
case 10:B=273;break;
case 11:B=304;break;
case 12:B=334;break;
}
}
month_day=B;
return month_day;
}

void main()
{
int a,b,c,month_day,k; //输入数据
cout<<"请输入年月日(空格分隔):";
cin>>a>>b>>c;
if((a%4!=0)&&(a%100!=0)||(a%400!=0)) //若所输入的年份是平年
{
month_day_ping(month_day);
}
if((a%4==0)&&(a%100!=0)||(a%400==0)) //若所输入的年份是闰年
{
month_day_run(month_day);
}
LeapYearNumber(a);
int total_day,date;
total_day=k*366+((a-k)*365)+month_day+c-1; //计算从基准点开始,到所输入年份一共所经历的天数
date=total_day%7; //对总天数进行求余
switch(date)
{
//通过余数判断星期几
case 0:cout<<"这天是星期日!"<<endl;break;
case 1:cout<<"这天是星期一!"<<endl;break;
case 2:cout<<"这天是星期二!"<<endl;break;
case 3:cout<<"这天是星期三!"<<endl;break;
case 4:cout<<"这天是星期四!"<<endl;break;
case 5:cout<<"这天是星期五!"<<endl;break;
case 6:cout<<"这天是星期六!"<<endl;break;
}
}
vbtraz大哥,我错了,我实在不知道该怎么办了,能不能给点详细的改进方案……~

第1个回答  2010-06-24
你的switch语句怎么没有default

C++ 为什么我运行这组代码 没错,但是不出结果,会无限的循环下去?_百度...
50<=val<=100;相当于(50<=val)<=100;c++对表达式的编译顺序是从左到右(相同优先级下)所以先判断50<=val,结果为真,表达式值为1,再判断1<=100;结果还是为真,也就是说判断条件恒为真,所以,你的循环永远无法结束

c++编程题目,我的程序为什么运行无结果
你没有调用Account函数。可以在主程序的输出之前显式的调用一下,以计算平均值。也可以在类的初始化里面调用。

C++编程看不到结果
这是正常的!其实,你双击那个exe文件时,调出了DOS窗口。我以前试过那样运行C程序,也是一闪而过。我最终的解决方法,就是打开DOS( 命令提示符),然后将你编译C以后在Debug文件夹下得到的exe文件的完整路径信息输入,敲击Enter就可以运行这个exe文件了。你可以试试。比如:我用VC6.0在G盘的名为myd...

我用Dev-C++编程,程序代码没有错,为什呢运行后不显示结果?
又一个悲剧的,翻译以下就是:runtime_error(运行时错误)程序一切ok 如果是win7专业版或旗舰版64位系统,找到目录下的exe文件,右键--属性--兼容性--以xp兼容模式运行;

c++编程问题 程序运行正确但是无法显示输出数据
void show(int *a,int num){ cout<<"请输出逆序后的10个数字: ";for(int i=0; i<num; i++)cout<<*(a+i); \/\/\/这里要输出,才能有输出数据啊?、\/\/\/ cout<<endl;}

C或是C++编程时在编译时卡住不能得出结果又不能关闭窗口时该怎么办啦...
打开任务管理器,找到“msdev.exe",有的是大写的"MSDEV.exe",然后结束这个进程就可以彻底关闭了。

dev c++软件`(编译成功)怎么运行时看不到结果?一闪就没了`晕死_百度知 ...
分类: 电脑\/网络 >> 程序设计 >> 其他编程语言 解析:因为执行完了,当然自动退出 你可以在最后return 0前面加一个getchar()或者使用断点调试

我安装完成VC++后运行不出结果请问是什么问题?(急急急)
你这不是运行不出结果,你还没有通过连接呢。C++编程有几个阶段:编码-编译-连接,然后你才能运行。估计你的程序里没有main函数吧。这是C\/C++控制台程序的入口程序。

用C语言编程程序没有错误为什么结果不对
程序可以运行并不表示程序就是正确的 编译和连接都正确,只能说明编译器对他进行语法等检查 没发现他的错误而已,而既然运行结果是错误的,那就是说明一点 可能是你的算法设计的不当,不能正确的解决问题,这样发生的错误 是运行期错误,在编译连接的过程不会出错的,不过幸好,编译器也为我们 提供了一些解决...

程序怎么不出结果?我用microsoft visual c++ 2010 学习版,命令提示框...
{ sum=sum+i;} printf("%d\\n",sum);getchar();getchar();return 0;} 楼上说的对,程序运行结束自动关闭,所以你看不到运行结果,加两个getchar就可以了。另:你那个"stdafx.h”是什么情况!刚开始学我想还是养成良好的编程习惯,遵循一定的编程格式,增加代码的可读性,希望可以帮到你!

相似回答