首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

请高手看一下小弟我这个代码错哪了

2014-01-14 
请高手看一下我这个代码哪里错了//统计选票,#includestdio.hvoid main(){printf(请投票:\n)int i,pia

请高手看一下我这个代码哪里错了
//统计选票,
#include<stdio.h>
void main()
{
printf("请投票:\n");
int i,piao[20],sum[5];
for(i=0;i<=19;i++)
scanf("%d",piao[i]);
for(i=1;1<=4;i++)
sum[i]=0;
for(i=0;i<=19;i++)
{
switch(piao[i])
{
case 1: sum[1]++;
case 2: sum[2]++;
case 3: sum[3]++;
case 4: sum[4]++;
default:break;
}
}
for(i=1;i<=4;i++)
printf("%d号得票 %d",i,sum[i]);
}
编译无问题,运行有错误 输入都无法完成
[解决办法]
scanf("%d",piao[i]);  你再好好看看
[解决办法]
 for(i=1;1<=4;i++) 这里死循环了!
 for循环用的用掉浪费,帮你修改了程序,看看!


#include <stdlib.h>
#include<stdio.h>
#include <string.h>

int main()
{
    int i,piao[20] = {0},sum[5];
    for(i=1;i<=4;i++)
        sum[i]=0;
    printf("请投票 1 2 3 4 选 1:\n");
        
    for(i=0;i<=19;i++)
    {   
        scanf(" %d", &piao[i]);
        switch(piao[i])
        {   
            case 1:  
                sum[1]++;
                break;
            case 2:  
                sum[2]++;
                break;
            case 3:  
                sum[3]++;
                break;
            case 4:  
                sum[4]++;
                break;
            default:
                break;
        }   
        fflush(stdout);                                                                                                                                                          
    }   
    for(i=1;i<=4;i++)
        printf("%d号得票 %d\n",i,sum[i]);

    return 0;
}

[解决办法]
scanf("%d",&piao[i]);
for(i=1;i<=4;i++)

[解决办法]
貌似上面已经解决了。结贴吧
[解决办法]
一个死循环,一个switch没有break。
[解决办法]
#include<stdio.h>
void main()
{
printf("请投票:\n");
int i,piao[20],sum[4];
for(i=0;i<=19;i++)
scanf("%d",&piao[i]);

for(i=0;1<4;i++)
sum[i]=0;

for(i=0;i<=19;i++)
{
switch(piao[i])
{


case 1: sum[1]++;break;
case 2: sum[2]++;break;
case 3: sum[3]++;break;
case 4: sum[4]++;break;
}
}
for(i=0;i<4;i++)
printf("%d号得票 %d",i,sum[i]);
}


[解决办法]
好像这个是初学者都会犯的错请高手看一下小弟我这个代码错哪了
[解决办法]
循环问题,楼上已给解决方法
[解决办法]
你sum[5]下标从0~4,switch语句里 却从1~4,输出sum的时候  sum[0]没有赋值,运行当然会出错
[解决办法]

这个编译器不会初始化默认为0的么.
[解决办法]

这个编译器不会初始化默认为0的么.

不会的
[解决办法]
scanf("%d",piao[i]);输入出错,是这里的问题,仔细看看漏了点什么。

最后输出会有问题,switch-case貌似也少了什么,仔细看看

[解决办法]
引用:
scanf("%d",piao[i]);输入出错,是这里的问题,仔细看看漏了点什么。

最后输出会有问题,switch-case貌似也少了什么,仔细看看

还有,你第二个循环, 貌似有个东西写错了,仔细点哦
[解决办法]
printf里面的%和变量的一一对应关系
scanf里面的%和变量以及变量前加不加&的一一对应关系
是C代码中非常容易出错的地方,而且通常编译还不出错。
所以在编译源代码之前值得专门仔细检查一遍甚至多遍。

[解决办法]
火眼金睛啊。。。
[解决办法]
这样的问题,怎么不调试一下呢,跟踪一下全知道了啊
[解决办法]
for(i=0;i<=19;i++)
{
switch(piao[i])
{
case 1: sum[1]++;
case 2: sum[2]++;
case 3: sum[3]++;
case 4: sum[4]++;
这部分肯定有问题了吧?不跳出吗

热点排行