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

请高手看一下我这个代码哪里错了
//统计选票,
#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])
{