最近在linux里面学习的时候,遇到了一个问题,不懂也不知道怎么调试,还望各路高手予以解惑
问题如下:
题目:用户输入1-7相对应得显示星期一--星期天,其余输入提示输入错误
我的源码如下
#include "stdio.h"
int main()
{
int i;
printf("请输入一个数字(1--7):\n");
scanf("%d",&i);
if (i<1 || i>7)
{
printf("对不起,您输入的数字不正确!\n");
}
else
{
switch (i)
{
case 1:
printf("星期一\n");
break;
case 2:
printf("星期二\n");
break;
case 3:
printf("星期三\n");
break;
case 4:
printf("星期四\n");
break;
case 5:
printf("星期五\n");
break;
case 6:
printf("星期六\n");
break;
case 7:
printf("星期天\n");
break;
}
}
}
编译之后,运行可以输入数字,但紧接着就是出现“段错误的提示”,不知道怎么回事,还望解答
sehnsucht1986 于 2010-08-23 14:54:41发表:
主函数最后没有返回值的话也只是有一个警告,还是能编译通过而且运行的。。。
我的是Fedora Core 5,也是在VMware下安装的。
CoreCode 于 2010-08-19 22:21:31发表:
:0)1貌似缺少一个return 0;吧:0ww)vu(1
liuchao 于 2010-08-19 15:20:16发表:
顶
hitop1314 于 2010-08-18 08:42:57发表:
改int main()为void main() 试试。因int main()要求有返回值。
bayi81 于 2010-08-15 13:40:18发表:
程序末尾增加 exit(i);
moonrain7758521 于 2010-08-15 11:52:39发表:
问题已经解决……谢谢各位啊
moonrain7758521 于 2010-08-15 11:34:57发表:
恩……我再研究研究……
moonrain7758521 于 2010-08-15 11:33:15发表:
不会吧,我用的是radalfg linux6.0 装的是虚拟机……
张无忌1987 于 2010-08-15 10:19:55发表:
应该没有问题吧
deepwhite 于 2010-08-15 07:48:07发表:
gdb 跟一下吧。
zhl168 于 2010-08-15 07:29:54发表:
貌似main函数没有返回值。
shenhao0129 于 2010-08-14 22:27:29发表:
刚运行了一下,发现一点问题都没有的啊,运行环境redhat linux 9
huyongzs 于 2010-08-14 21:57:13发表:
我做了一年半的Mac程序员,经常用unix的接口。我调试程序的办法就是多输出变量值。各分之处加上输出语句
用printf之类的吧。
当然程序崩溃用gdb也很好用。
gdb --args ./xxxx 参数 参数
然后用gdb里边的bt指令直接就爆出崩溃的代码位置。
用了一年半了。复杂的没用到。printf+bt指令足够了
另外注意代码的风格。1-7之外的数字直接返回exit()/return就可以了
xulihang 于 2010-08-14 21:14:13发表:
是不是系统问题,我的slax总出错……
孔仔 于 2010-08-14 17:55:29发表:
貌似没问题 这是怎么回事
shenhao0129 于 2010-08-14 17:47:31发表:
初看起来貌似没有问题的啊,晚上编译运行看看
相思爱文 于 2010-08-14 17:37:35发表:
[i=s] 本帖最后由 相思爱文 于 2010-8-14 17:39 编辑 [/i]
我运行,没出现错误。