红联Linux门户
Linux帮助

C 语言问题

发布时间:2011-10-06 20:08:41来源:红联作者:wmqj
大虾们好:
      喀刚学习C语言   在写代码中用到了,头文件 提示找不到文件或目录 、求指教。


还有一个代码问题:(如下)
#include
void main(void)
{
int sum=0;
for(int a=1; a<=100; a++)
{
sum+=a;
}
printf("结果:%d\n",sum);
}
提示:scanf.c: In function ‘main’:
scanf.c:5: error: ‘for’ loop initial declarations are only allowed in C99 mode
scanf.c:5: note: use option -std=c99 or -std=gnu99 to compile your code
文章评论

共有 19 条评论

  1. linuxunix 于 2011-10-17 09:43:33发表:

    {:3_120:}

  2. fayindark 于 2011-10-15 01:10:10发表:

    哎,我其实发现我的C学得既不精有没有好的编程习惯。

  3. LinusLin 于 2011-10-15 00:36:00发表:

    #include
    void main(void)
    {
    int a,sum=0;
    for(a=1; a<=100; a++)
    {
    sum+=a;
    }
    printf("结果:%d\n",sum);
    }

  4. LinusLin 于 2011-10-15 00:35:52发表:

    #include
    void main(void)
    {
    int a,sum=0;
    for(a=1; a<=100; a++)
    {
    sum+=a;
    }
    printf("结果:%d\n",sum);
    }

  5. LinusLin 于 2011-10-15 00:35:33发表:

    #include
    void main(void)
    {
    int a,sum=0;
    for(a=1; a<=100; a++)
    {
    sum+=a;
    }
    printf("结果:%d\n",sum);
    }

  6. pl_014 于 2011-10-14 18:34:20发表:

    [i=s] 本帖最后由 pl_014 于 2011-10-14 18:47 编辑 [/i]

    刚发现,编译器居然没报void main这种错误,晕

  7. 西江听月 于 2011-10-14 11:26:25发表:

    楼上说的很明白了,你的编译器不支持for循环里的变量声明,把int a放到外面就行了,或者按照下面的提示指定编译选项

  8. LinusLin 于 2011-10-12 12:14:03发表:

    #include
    void main(void)
    {
    int a,sum=0;
    for(a=1; a<=100; a++)
    {
    sum+=a;
    }
    printf("结果:%d\n",sum);
    }

  9. LinusLin 于 2011-10-12 12:07:51发表:

    变量的定义要放在使用语句前面,要养成将变量的声明放在前面的习惯。修改如下:
    #include
    void main(void)
    {
    int a,sum=0;
    for(a=1; a<=100; a++)
    {
    sum+=a;
    }
    printf("结果:%d\n",sum);
    }

  10. goal 于 2011-10-10 20:40:36发表:

    很久没碰C了,现在都差不多忘记了

  11. zly159 于 2011-10-10 17:29:11发表:

    顶顶顶顶顶顶顶顶顶顶顶

  12. ai0909 于 2011-10-10 09:44:26发表:

    0:w(5(

  13. wonderall 于 2011-10-07 10:55:40发表:

    养成好的习惯可以避免这种问题

  14. LiGValley 于 2011-10-07 09:37:30发表:

     conio.h不是C标准库中的头文件。conio是Console Input/Output(控制台输入输出)的简写,其中定义了通过控制台进行数据输入和数据输出的函数,主要是一些用户通过按键盘产生的对应操作,比如getch()函数等等。你可以在网上搜索下载包含在工作目录即可。至于第二个错无我就不说了。多看点书吧!

  15. lijiang 于 2011-10-06 22:49:42发表:

    [i=s] 本帖最后由 lijiang 于 2011-10-6 22:50 编辑 [/i]

    将变量定义最好放在for循环前面,这样才是标准通用的c语法格式。

  16. pl_014 于 2011-10-06 21:42:20发表:

    [i=s] 本帖最后由 pl_014 于 2011-10-6 21:47 编辑 [/i]

    我一般都是把变量统一放到前面声明
    有一回,一个同学给我发来一个C++的代码,结果编译后有一个错误就出在这了,这段代码有两段for语句,循环变量用的是一个,在第一个for上面作了int的声明,第二个却没有,结果在我的g++编译器上就不行了,这是因为这样的写法是c++最新的标准里所禁止的,而那段代码是给vc6写的,所以出了错
    所以说个人觉得把都放到前面声明比较好,前面是变量表,用什么缺什么都从那里找
    至于内存占用上,大多数情况下一个小小的循环变量算不了什么,而且这只是在不用这个变量的时候才能省下那么一点点的内存空间,再者说现在的优化器在必要时应该都能做到这一点

  17. fox1987 于 2011-10-06 20:55:39发表:

    将int a放到循环外面

  18. wmqj 于 2011-10-06 20:26:36发表:

    大虾能给我改一下吗、喀有点听不太明白2# age

  19. age 于 2011-10-06 20:14:27发表:

    [code]scanf.c:5: error: ‘for’ loop initial declarations are only allowed in C99 mode
    scanf.c:5: note: use option -std=c99 or -std=gnu99 to compile your code[/code]这二行说得很清楚啊,只有C99支持在for语里对变量初始化
    要么把a初始化放到for之前
    要么加-std=c99 or -std=gnu99参数来使用C99语法编译