为了账号安全,请及时绑定邮箱和手机立即绑定

c语言基础题帮忙看一下

题目描述

假设某班级有10名同学,有2名候选人竞选班长。分别输入两名候选人序号,计算候选人票数。非侯选人数字计为无效票数。

输入

程序运行时第一行输入10个整数,以空格为分隔。 1表示第1侯选人,2表示第2侯选人,其它表示无效票数。

输出

输出侯选人的票数及无效票的数量。 第一行输出第1名候选人票数,下一行输出第2名候选人票数。如果存在无效票输出无效票数,否则不输出。(侯选人后面有冒号,之后是空格,然后是票数)

样例输入

Sample Input 1:
1 1 2 2 1 2 2 3 4 5

Sample Input 2:
1 1 1 1 1 2 2 2 2 2

样例输出

Sample Output 1:
candidate1: 3
candidate2: 4
Invalid: 3

Sample Output 2:
candidate1: 5
candidate2: 5

提示

printf("candidate1: %d\n",num1); printf("candidate2: %d\n",num2); 无效输出printf("Invalid: %d",num3);

正在回答

2 回答

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int a,b,n,k,i;
    a=0;
    b=0;
    k=0;
    for(i=1;i<=10;i++)
    {
        scanf("%d",&n);
        if(n==1)
            a++;
        else if(n==2)
            b++;
        else
            k++;
    }
    printf("%d\n",a);
    printf("%d\n",b);
    printf("%d\n",k);
    return 0;
}


0 回复 有任何疑惑可以回复我~
  1. #include<stdio.h>
    int main()
    {
        printf("某班级有10名同学,有2名候选人竞选班长.\n分别输入两名候选人序号,1表示第1侯选人,2表示第2侯选人,其它表示无效票数.\n(每个整数以空格分隔,只能是个位数或者其它单个字符,多个则输入错误)\n");
        char num[19];
        int i=0, num1=0, num2=0, num3=0;
        for(i=0;i<19;i++)
        {
            num[i]=getchar();
            if(i%2!=0 && num[i]!=' ') 
            {
                printf("输入错误!!\n");
                i=1;
                break;
            }
            if(num[i]=='1') num1++;
            else if(num[i]=='2') num2++;
            else num3++;
        }
        if(i==19)
        {
            printf("candidate1: %d\n",num1); 
            printf("candidate2: %d\n",num2); 
            printf("Invalid: %d\n",num3-9);
        }
        return 0;
    }
0 回复 有任何疑惑可以回复我~
#1

Von_Sdite

在处理输入其它表示无效票数时,对于输入非单个字符,难以处理,所以在后面将其用输入错误来暂停程序。 呃。。求大神的代码, 我这个只能是大部分解决问题。 我也是个新手。。
2016-01-30 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       926210    人
  • 解答问题       20797    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

c语言基础题帮忙看一下

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信