为什么 程序 编译通过 也是正确的 但是运行的结果却不是正确的 我用的是VC6 写的C语言

这个是例程 运行的结果也是错误的
#include <stdio.h>
int leap(int a)
{
if (a % 4 == 0 && a % 100 != 0 || a % 400 == 0)
return 1;
else
return 0;
}
int number(int year, int m, int d)
{
int sum = 0, i, j, k, a[12] =
{
31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
};
int b[12] =
{
31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
};
if (leap(year) == 1)
for (i = 0; i < m - 1; i++)
sum += b[i]; /
else
for (i = 0; i < m - 1; i++)
sum += a[i];
sum += d;
return sum;
}
main()
{
int year, month, day, n;
printf("please input year,month,day\n");
scanf("%d%d%d", &year, &month, &day);
n = number(year, month, day);
printf("di %d tian\n", n);
}

没语法错误,有逻辑错误,特别是指针容易用错。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-06-20
必然是程序错了。
逻辑如果没有错,可能就是内存,变量有效范围、有效取值之类的细节没有做好。
第2个回答  2011-06-20
应该把代码放上来大家看才知道哪里有问题追问

放上来了 请帮忙看看 谢谢!

第3个回答  2011-06-20
你编的程序应该有bug,也就是说逻辑上是正确的,但是细节上还有问题,你再仔细检查一下代码追问

我自己写了一个 错了 换成 书上的例程还是一样的错了 程序应该没问题 程序是输入年月日 然后判断是这年的第几天 运行结果是一个很大的负数

...但是运行的结果却不是正确的 我用的是VC6 写的C语言
没语法错误,有逻辑错误,特别是指针容易用错。

用vc6.0写的一段代码,无错误无警告,为什么结果不正确。
那个是超出变量类型最大存储范围了。你换一个更大的变量类型

...但只显示printf中的内容,输入数字不运行结果,只有光标在闪
这是因为你的程序一直符合while( proft > 0),所以它就一直在环体内循环 你应该给它来个,printf(),再break;

"Cannot execute program" 为什么我用vc6运行不了程序?
看你的情况,编译是无错误通过的。估计是该程序代码运行环境不正确。譬如说你再WIN系统下运行安卓的代码或其它单片机的代码,自然是不行的。如果确认代码运行环境正确,那可能是路径有正文字符,或者内存不足,权限不够。你可以关了VC,直接找到编译好的执行文件,试试用管理员的权限去运行。

我用Vc6.0编译的一个程序可以运行正确,但是在VC2005中结果是乱码
你看看你的工程设置里是不是用的Unicode字符,2005默认是这个选项,是的话改为多字节

cfree中运行正确的vc6.0中错
不要在外面运行exe文件, 直接编译完成后在vc里按ctrl+F5运行就可以看到结果了.

为什么C语言程序运行时出现exe停止工作,但可以输出结果,用的是vc6...
你定义 数组 long int r[39];表示该数组元素个数为39个,数组下标是从0开始算起的,也就是说r[0] 为第一个元素,地39个元素应该是r[38], 所以你检查一下自己的程序,看看是不是两个循环里面都会出现,r[39]的情况?r[39]表示第40个元素,数组越界,程序就崩溃了,所以才出现exe停止运行...

用vc++6写好程序运行的时候提示文件不存在怎么办
可能很多人在安装VC 6.0后有过点击“Compile”或者“Build”后被出现的 “Compiling... ,Error spawning cl.exe”错误提示给郁闷过。很多人的 选择是重装,实际上这个问题很多情况下是由于路径设置的问题引起的,“CL.exe”是VC使用真正的编译器(编译程序),其路径在“VC根目录\\VC98\\Bin”下面,...

vc6写书上的程序,编译不报错,无法执行。错误为执行Link.exe出错_百度...
在C\/C++中,我们一般认为有两个阶段(其实有很多): 编译和链接。而题主所提供的图表示的是一种链接错误,而不是编译错误。编译错误: 存在语法错误,缺少某个头文件等很明显的错误,如果编译错误都不能解决,就说明写代码那个人水平极低。编译主要是针对某个具体模块的。链接错误:链接是主要针对多个...

如图,这是用VC6.0编写的求梯形面积的程序,为什么运行结果不正常?
楼主的输入格式和scanf要求的输入格式有差别,对于“%f%f%f”三个连写,输入完一个数后不可使用逗号,可以使用空格或者回车键。

相似回答