| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 510 人关注过本帖
标题:求大神帮忙看看我哪里错了~~~
只看楼主 加入收藏
穿袜子的傻喵
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2015-4-21
结帖率:100%
收藏
已结贴  问题点数:8 回复次数:8 
求大神帮忙看看我哪里错了~~~
程序代码:
#include<stdio.h>
main()
{
    int i,n=0,sum=0;
    int a[20];
    for(i=0;i<20;i++)
        scanf("%d",&a[i]);
    for(i=0;i<20;i++)
           if(a[i]>=0)
           {
               sum+=a[i];
                n++;
           }
    printf("%d,%d\n",n,sum);
}

对于这个程序,为什么在第六行与第七行之间加一条for(n=0;n<=20;n++),运行结果就错了呢?求大神指导~~~
2015-04-28 20:30
穿袜子的傻喵
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2015-4-21
收藏
得分:0 
回复 楼主 穿袜子的傻喵
错了错了,在第八行与第九行之间!!!
2015-04-28 20:31
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
#include<stdio.h>
main()
{
    int i,n=0,sum=0;
    int a[20];
    for(i=0;i<20;i++){
    printf("请输入第%d个数",i+1);
        scanf("%d",&a[i]);
    }
    for(i=0;i<20;i++)
           if(a[i]>=0)
           {
               sum+=a[i];
                n++;
           }
    printf("%d,%d\n",n,sum);
}

剑栈风樯各苦辛,别时冰雪到时春
2015-04-28 20:33
秦时的明月夜
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:13
帖 子:126
专家分:504
注 册:2013-3-12
收藏
得分:2 
那是因为 变量i 和变量n有不同的作用……你这用n做循环n就没办法计数了……
2015-04-28 20:50
我叫K
Rank: 2
等 级:论坛游民
帖 子:74
专家分:19
注 册:2015-4-28
收藏
得分:2 
其实在第6行和第7行之间加那个for并没有运行错,它运行的是对的。   当加入for(n=0;n<=5;n++)时   等于说程序要你输入5*6=30个数   然后一步步往下做是对的   只是这样加了以后程序和你原来的程序根本不一样了。
程序代码:
#include<stdio.h>
main()
{
    int i,n=0,sum=0;
    int a[5];
    for(i=0;i<5;i++)
        for(n=0;n<=5;n++) //出去以后n等于6 
        scanf("%d",&a[i]);
    for(i=0;i<5;i++)
           if(a[i]>=0)
           {
               sum+=a[i];
                n++;//这里n不断地累加,最后结果是n为11 
           }
    printf("%d,%d\n",n,sum);
}

图在下面   我输入30个  1    结果如下:  11,5    你可以自己尝试下

他们和我说,喜欢一个女生要大胆追!
2015-04-29 11:07
穿袜子的傻喵
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2015-4-21
收藏
得分:0 
回复 5楼 我叫K
我说错了,是第八行和第九行之间。。。
2015-04-29 13:27
陆思雨
Rank: 2
等 级:论坛游民
威 望:1
帖 子:36
专家分:42
注 册:2014-9-17
收藏
得分:4 
for(i=0;i<20;i++)
           if(a[i]>=0)
这两行之间啊?
如果加了for(n=0;n<=20;n++),当i=0时,会执行20次 if(a[i]>=0)
           {
               sum+=a[i];
                n++;
           }
当i=1时,同样执行20次,程序是可以运行的,只是跟自己预期的答案不符是吧?
2015-04-29 14:15
穿袜子的傻喵
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2015-4-21
收藏
得分:0 
回复 7楼 陆思雨
soga~~~
2015-04-29 16:59
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
数组越界会发生什么楼主已经知道了吧,建议加个提示输入语句

剑栈风樯各苦辛,别时冰雪到时春
2015-04-29 17:34
快速回复:求大神帮忙看看我哪里错了~~~
数据加载中...
 
   



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

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