1067:整数的个数
时间限制: 1000 ms 内存限制: 65536 KB
【题目描述】
给定k(1<k<100)个正整数,其中每个数都是大于等于1,小于等于10的数。写程序计算给定的k个正整数中,1,5和10出现的次数。
【输入】
输入有两行:第一行包含一个正整数k,第二行包含k个正整数,每两个正整数用一个空格分开。
【输出】
输出有三行,第一行为1出现的次数,,第二行为5出现的次数,第三行为10出现的次数。
【输入样例】
5
1 5 8 10 5
【输出样例】
1
2
1
题目概述:
在输入的k个数中,输出1、5、10的个数。
思路分析:
声明3个int类型变量用来存储1、5、10的个数。循环遍历k个数,如果当前的数为1,则存储1的变量自加,以此类推。
数据类型:给定k(1<k<100)个正整数,可以选择unsigned类型或int类型。
求解过程:
声明5个int类型变量k、t、one = 0、five = 0、ten = 0,分别代表k个数、输入的正整数,1、5、10的个数。
输入一个正整数给变量k。
循环k次,循环体中:
1.输入一个正整数给变量t。
2.如果t等于1,则one+1。
3.否则,如果t等于5,则five+1。
4.否则,如果t等于10,则ten+1。
5.i++。
循环外:
根据输出格式输出变量one、five、ten的值。
参考代码 - C++:
#include <iostream>
using namespace std;
int main()
{
int k, t, one = 0, five = 0, ten = 0;
cin >> k;
for (int i = 1; i <= k; i++)
{
cin >> t;
switch (t)
{
case 1:one++;break;
case 5:five++;break;
case 10:ten++;
}
}
cout << one << '\n' << five << '\n' << ten;
return 0;
}
参考代码 - C语言:
#include <stdio.h>
int main()
{
int k, t, one = 0, five = 0, ten = 0, i;
scanf("%d", &k);
for (i = 1; i <= k; i++)
{
scanf("%d", &t);
switch (t)
{
case 1:one++;break;
case 5:five++;break;
case 10:ten++;
}
}
printf("%d\n%d\n%d", one, five, ten);
return 0;
}