标题:两个for()循环中的i变量为啥会报错? 提示重定义i,多次初始化。。 vc++ ...
只看楼主
beichei5d
Rank: 4
等 级:业余侠客
威 望:2
帖 子:89
专家分:270
注 册:2016-3-8
结帖率:100%
已结贴  问题点数:20 回复次数:9 
两个for()循环中的i变量为啥会报错? 提示重定义i,多次初始化。。 vc++6.0环境
/*
-----------------------------------
project: 数组练习1 求10个成绩的平局值
-----------------------------------
                                  */
# include<stdio.h>

int main(void)
{
    int grades[10]; //存储成绩的数组
    unsigned int count = 10;//要读取的成绩的个数
    long sum = 0;//成绩的总和
    float average = 0;//平均成绩
    unsigned int i = 0;

    printf("请输入10个成绩值:\n");

    //for(unsigned int i=0;i<count;++i)
    for(i=0;i<count; ++i) //数组中第一个元素标号为0,故i从0起始
    {
        printf("%2d>",i+1);
        scanf("%d",&grades[i]);
        sum = sum + grades[i];
        
    }
    printf("10个成绩的总和为:%d\n",sum);
    average = (float)sum/count;

    //for(unsigned int i=0;i<count;++i)
    for(i=0;i<count;++i)  //不在外部直接在for()循环中定义i为啥会报重复定义呢?
        printf("第 %d 个成绩为: %d\n",i+1,grades[i]);

    printf("所求的平均成绩是:%0.2f\n",average);//用正确的格式说明符

    return 0;
}
搜索更多相关主题的帖子: average include count 元素 
2017-05-08 15:35
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
得分:20 
可以在for,while, if 语句中定义变量是C99对作用域的扩大化。
不支持C99的编译器,是不可以在for,while,if语句中定义变量的。

09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-05-08 15:43
beichei5d
Rank: 4
等 级:业余侠客
威 望:2
帖 子:89
专家分:270
注 册:2016-3-8
得分:0 
回复 2楼 renkejun1942
只有1个for 时  在for中定义i是允许的,出现两个for 使用同一变量名i就会报错,第二个for中的变量名改成其它的 比如用j,就正确。。

你现在所偷的懒,都将成为以后扇你的巴掌!共勉吧。。。
2017-05-08 15:51
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
得分:0 
回复 3楼 beichei5d
你再编译一下,把警告信息帖出来。

09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-05-08 15:54
beichei5d
Rank: 4
等 级:业余侠客
威 望:2
帖 子:89
专家分:270
注 册:2016-3-8
得分:0 
回复 4楼 renkejun1942
F:\vc\lx\k-5\shuzu5_3_2.cpp(30) : error C2374: 'i' : redefinition; multiple initialization
        F:\vc\lx\k-5\shuzu5_3_2.cpp(20) : see declaration of 'i'
Error executing cl.exe.

shuzu5_3_2.obj - 1 error(s), 0 warning(s)

你现在所偷的懒,都将成为以后扇你的巴掌!共勉吧。。。
2017-05-08 15:56
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
得分:0 
回复 5楼 beichei5d
吓死我了,我还以为VC真的支持C99了。

你看下你的源文件的后缀,学C语言,竟然不知道最基本的常识,C语言源文件的后缀是.c,不是.cpp
.cpp是C++的后缀。
也许就是说,你这不是在写C,而是在写C++。

希望你有最基本的计算机常识,知道怎么改文件的后缀,……希望。

09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-05-08 15:58
beichei5d
Rank: 4
等 级:业余侠客
威 望:2
帖 子:89
专家分:270
注 册:2016-3-8
得分:0 
回复 6楼 renkejun1942
呃。。。。。。。初学,看了一遍郝斌老师的视频 ,,现在看一遍书。。很多还不明白。。。

你现在所偷的懒,都将成为以后扇你的巴掌!共勉吧。。。
2017-05-08 16:01
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
得分:0 
回复 7楼 beichei5d
郝斌?呵呵。
自己买本书看吧。


09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-05-08 16:03
beichei5d
Rank: 4
等 级:业余侠客
威 望:2
帖 子:89
专家分:270
注 册:2016-3-8
得分:0 
回复 8楼 renkejun1942
嗯 嗯 。。。在看书了 。。看的不细致,,有些地方还没注意到。。吸取教训了 。。

你现在所偷的懒,都将成为以后扇你的巴掌!共勉吧。。。
2017-05-08 16:06
a3192048
Rank: 1
等 级:新手上路
威 望:1
帖 子:3
专家分:0
注 册:2014-4-1
得分:0 
这在C++标准中是允许的,是VC6编译器的问题,VC6对标准支持的不好,楼主换个C++编译器就没事了
2018-08-11 00:24



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-476801-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.655607 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved