新手学C问题:为什么我的C语言程序老是闪退?

#include<stdio.h> #include<stdlib.h> int main() { int year; for (year=1000;1000<year<2000;year++) { if (year%4==0) printf("%d\t",year); else if (year%100==0) printf("%d\t",year); else if(year>2000) break; } system("pause"); return 0; }
 不是很清楚说的测试for语句什么意思...我把for修改了一下,依然是一个闪退程序= =

一闪而过是程序自动结束,同时编译器没有提供结果驻留功能。对于此种情况,可以手动在代码结尾增加驻留功能的函数。常用的有如下两种:

1 通过getch函数驻留。
getch会等待从屏幕的输入,在main函数退出前,增加
getch();
调用,系统会等待输入,直到有新的输入,才会退出界面。

2 通过system("pause");来实现驻留。
在main退出前调用
system("pause");
会调用系统的pause函数,提示并实现按任意键退出程序效果。

如果是已经编译好的C语言程序,可以通过开始->运行,键入cmd后回车。
在打开的命令行窗口,将可执行文件拖动到窗口上,再回车即可运行该程序,在此窗口不会出现闪退,从而观察运行结果。

由于该问题仅在windows平台出现,所以以上介绍均针对windows平台。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-03-29
#include<stdio.h>
#include<stdlib.h>
int main()
{
int year;
for (year=1000;1000<year&&year<2000;year++)
{
if (year%4==0) printf("%d\t",year); else if (year%100==0) printf("%d\t",year); else if(year>2000) break; } system("pause"); return 0; }追问

你这个一样闪退啊

第2个回答  2014-03-29
在return 0; 前加一条语句 getchar();追问

然后就什么都没显示了?
还有我们没学这个语句的= =

追答

你的程序有问题,1000= 1000 && year < 2000

追问

恩改了,谢谢。不过情况一样。。。

追答

不清楚你是什么情况,用的什么编译器,不过还请你看清楚了, year >= 1000,大于等于哦。

追问

'Devc++

本回答被提问者采纳
第3个回答  2014-03-29
推荐个软件给你,叫 啊哈c 它会帮你设置好。追问

C的作用对我来说更多是学习而已= =
不然的话以我的智商没点好的基础什么都干不了...

一直都有的。。

追答

for语句 为 for(year=1000;(year>=1000)&&(year<2000);year++)

追问

是啊,我那个文件写了的

追答

看我的  for语句    for(year=1000;(year>=1000)&&(year<2000);year++)  ,你的for 循环本身就进不去

追问

恩修改过了

追答

可以吗?你要注意你的逻辑语句的处理

追问

现在在用手机,我把我那个提问的时候补充里的程序没修改过的放到c4里都能输出。。

我电脑的的dev老是闪退。。

真的有的。。。就是闪过正确的程序

追答

那怎么我的没问题。写个测试语句,看能不能进入for 循环

相似回答