红联Linux门户
Linux帮助

一个C练习的问题

发布时间:2010-08-14 16:10:26来源:红联作者:moonrain7758521
最近在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;
}
}

}

编译之后,运行可以输入数字,但紧接着就是出现“段错误的提示”,不知道怎么回事,还望解答
文章评论

共有 17 条评论

  1. sehnsucht1986 于 2010-08-23 14:54:41发表:

    主函数最后没有返回值的话也只是有一个警告,还是能编译通过而且运行的。。。
    我的是Fedora Core 5,也是在VMware下安装的。

  2. CoreCode 于 2010-08-19 22:21:31发表:

    :0)1貌似缺少一个return 0;吧:0ww)vu(1

  3. liuchao 于 2010-08-19 15:20:16发表:

  4. hitop1314 于 2010-08-18 08:42:57发表:

    改int main()为void main() 试试。因int main()要求有返回值。

  5. bayi81 于 2010-08-15 13:40:18发表:

    程序末尾增加 exit(i);

  6. moonrain7758521 于 2010-08-15 11:52:39发表:

    问题已经解决……谢谢各位啊

  7. moonrain7758521 于 2010-08-15 11:34:57发表:

    恩……我再研究研究……

  8. moonrain7758521 于 2010-08-15 11:33:15发表:

    不会吧,我用的是radalfg linux6.0 装的是虚拟机……

  9. 张无忌1987 于 2010-08-15 10:19:55发表:

    应该没有问题吧

  10. deepwhite 于 2010-08-15 07:48:07发表:

    gdb 跟一下吧。

  11. zhl168 于 2010-08-15 07:29:54发表:

    貌似main函数没有返回值。

  12. shenhao0129 于 2010-08-14 22:27:29发表:

    刚运行了一下,发现一点问题都没有的啊,运行环境redhat linux 9

  13. huyongzs 于 2010-08-14 21:57:13发表:

    我做了一年半的Mac程序员,经常用unix的接口。我调试程序的办法就是多输出变量值。各分之处加上输出语句
    用printf之类的吧。
    当然程序崩溃用gdb也很好用。
    gdb --args ./xxxx 参数 参数
    然后用gdb里边的bt指令直接就爆出崩溃的代码位置。

    用了一年半了。复杂的没用到。printf+bt指令足够了

    另外注意代码的风格。1-7之外的数字直接返回exit()/return就可以了

  14. xulihang 于 2010-08-14 21:14:13发表:

    是不是系统问题,我的slax总出错……

  15. 孔仔 于 2010-08-14 17:55:29发表:

    貌似没问题 这是怎么回事

  16. shenhao0129 于 2010-08-14 17:47:31发表:

    初看起来貌似没有问题的啊,晚上编译运行看看

  17. 相思爱文 于 2010-08-14 17:37:35发表:

    [i=s] 本帖最后由 相思爱文 于 2010-8-14 17:39 编辑 [/i]

    我运行,没出现错误。