c编程:整数的个数。

//给定k(1<k<100)个正整数,其中每个数都是大于等于1,小于等于10的数。
//写程序计算给定的k个正整数中,1,5和10出现的次数。
//输入
//    输入有两行:第一行包含一个正整数k,第二行包含k个正整数,每两个正整数用一个空格分开。
//输出
//    输出有三行,第一行为1出现的次数,第二行为5出现的次数,第三行为10出现的次数。
#include<stdio.h>
int main()
{
	int k;//需要输入的正整数的个数
	int i,j;//循环变量,必须在此声明,才能在下面使用,不能要使用的时候才声明它,vc++6.0不支持!!
	int a[100]={0};//把输入的正整数先存入数组中,初始化全为0。
	int count1=0,count5=0,count10=0;//1,5,10的计数器

	scanf("%d",&k);

	for(i=0;i<k;++i)
	{
		scanf("%d",&a[i]);//注意不能在"%d"里面加空格,否则程序有问题(要多输入一个数字)
	}
	for(j=0;j<k;j++)//for循环遍历数组中的每个数字并统计每个数字的出现次数
	{
		if(a[j]==1)
			count1++;
		if(a[j]==5)
			count5++;
		if(a[j]==10)
			count10++;
	}
	printf("%d\n",count1);
	printf("%d\n",count5);
	printf("%d\n",count10);
	return 0;
}

--====================================================================

不用数组:

#include <stdio.h>
int main()
{
    int i, k, x,//循环变量i,整数个数k,整数值x.
	int a1, a5, a10;//统计1,5,10个数的变量。
    a1 = a5 = a10 = 0;
    scanf("%d", &k);
    for (i = 1;i <= k;++i)
    {
        scanf("%d", &x);
        if (x == 1) ++a1;
        if (x == 5) ++a5;
        if (x == 10) ++a10;
    }
    printf("%d\n%d\n%d\n", a1, a5, a10);
}
时间: 2024-12-20 21:35:57

c编程:整数的个数。的相关文章

计算概论(A)/基础编程练习2(8题)/7:整数的个数

1 #include<stdio.h> 2 int main() { 3 int k,temp,n[3] = {0}; 4 5 // 输入k个正整数 6 scanf("%d",&k); 7 8 // 循环读入和进行算术 9 while(scanf("%d",&temp)!=EOF) { 10 switch(temp) { 11 case 1: 12 n[0]++; 13 break; 14 case 5: 15 n[1]++; 16 br

牛客网在线编程:n个数中出现次数大于等于n/2的数

题目描述: 输入n个整数,输出出现次数大于等于数组长度一半的数.输入描述:每个测试输入包含 n个空格分割的n个整数,n不超过100,其中有一个整数出现次数大于等于n/2.输出描述:输出出现次数大于等于n/2的数.示例1输入 3 9 3 2 5 6 7 3 2 3 3 3输出 3 思路: 每次输入,使用数组a[n]记录n出现的次数,num记录总数.然后判断a[i]是否大于等于num/2.是的话返回i即可剑指offer上的思路是保存两个值,当接下来出现的下一个数与前一个数相同时,计数加一,否则减一.

Openjudge-计算概论(A)-整数的个数

描述: 给定k(1<k<100)个正整数,其中每个数都是大于等于1,小于等于10的数.写程序计算给定的k个正整数中,1,5和10出现的次数.输入输入有两行:第一行包含一个正整数k,第二行包含k个正整数,每两个正整数用一个空格分开.输出输出有三行,第一行为1出现的次数,,第二行为5出现的次数,第三行为10出现的次数.样例输入 5 1 5 8 10 5 样例输出 1 2 1 来源计算概论05-模拟考试1 思路:这题十分简单,直接判断是不是1,5,10就得了,具体我就不解释了. 代码如下: 1 #i

11:整数的个数

描述 给定k(1< k < 100)个正整数,其中每个数都是大于等于1,小于等于10的数.写程序计算给定的k个正整数中,1,5和10出现的次数. 输入 输入有两行:第一行包含一个正整数k,第二行包含k个正整数,每两个正整数用一个空格分开. 输出 输出有三行,第一行为1出现的次数,,第二行为5出现的次数,第三行为10出现的次数. 样例输入 5 1 5 8 10 5 样例输出 1 2 1 来源 计算概论05-模拟考试1 答案 #include<iostream> #include<

C#面向对象编程-计算两个数的加减乘除

1.需求分析示例 名词提炼法: 示例:人开门 1.提取类 名词:人.门 类:人类.门类 2.分析每个类中应该有哪些方法或者属性 方法:开 那么"开"属于哪个类? 分析人和门谁最知道开这个动作,什么情况下才能使用开,门最清楚开的具体操作,等等一系列的分析,最终"开"属于门类. 3.门类示例代码 class Door { double menZhouJiaoDu;//门轴角度 double zhangDu;//弹簧张度 public void open() { //增加

1-5-09:整数的个数

描述给定k(1<k<100)个正整数,其中每个数都是大于等于1,小于等于10的数.写程序计算给定的k个正整数中,1,5和10出现的次数.输入输入有两行:第一行包含一个正整数k,第二行包含k个正整数,每两个正整数用一个空格分开.输出输出有三行,第一行为1出现的次数,,第二行为5出现的次数,第三行为10出现的次数.样例输入 5 1 5 8 10 5 样例输出 1 2 1 1 #include<stdio.h> 2 int main() 3 { 4 int k,i; 5 int a; 6

C语言编程 求两个数的平均值方法(三种方法)

第一种方法是最常见的average=(a + b) / 2这种方式,求两个数的平均值 第二种方法是当 a<b 时averag=a+(b-a)/2 这里着重介绍的是第三种方法 average=(a&b) + (a^b)>>1 推导过程如下a + b = (a&b) 2 + (a^b)) --->average=((a&b)2+(a^b))/2 ---->average=(a&b) + (a^b)>>1 eg:两个数为15和515二进制

/*3、随机生成400 个 [1,50]的整数,统计出生成的每个整数的个数。输出入格式如下: 50&gt;&gt;&gt;4 4个50*/

public class Test { public static void main(String[] args) { int[] a = new int[400]; int[] b = new int[50]; for (int i = 0; i < a.length; i++) { a[i] =(int)(Math.random() * 50); } System.out.println("随机产生的数组为:"); for (int i : a) { System.out.

6.2 bash编程 整数测试及特殊变量

6.2  linux的三大神器 grep,sed(流编辑器),awk sed基本用法 sed :Stream EDitor 行编辑器(全屏编辑器:vi) sed:模式空间 默认不编辑原文件,仅对模式空间中的数据做处理:而后,处理 结束后,将模式空间打印至屏幕 sed [options] 'AddressCommand' file ... -n:静默模式,不再默认显示模式空间里的内容 Address: 1 StartLine,EndLine 比如1,100(从第1行到100行) $:最后一行 2