数据的读取写入
例子1:成绩计算
定义长度为5的数组,存储一个班同学的成绩(分数大家任意赋值),清问该班级同学的
总分和平均分分别是多少?(注意掌握数组赋值的2种形式)
#include <iostream>
using namespace std;
int main()
{
	float a[200],sum;
	int n;
	cin>>n;
	sum = 0;
	for(int i = 0;i<n;i++)
	{
		cin>>a[i];
		sum = sum+a[i];
	}
	float AVE = 1.0*sum/n;
	cout<<"总分是"<<sum<<","<<"平均分是"<<AVE;
	return 0;
}

例子2:成绩统计
期末考试结束,王老师想知道这次考试中成绩优秀的同学有多少人(考试成绩大于或等于
90表示成绩优秀),请你编程帮助王老师来计算出成绩优秀的人数。
#include <iostream>
using namespace std;
int main()
{
	float a[200];
	int n,cnt;
	cin>>n;
	cnt = 0;
	for(int i = 0;i<n;i++)
	{
		cin>>a[i];
		if(a[i]>=90)
		{
			cnt++;
		}
	}
	cout<<cnt;
	return 0;
}

查找支撑数
题目描述
在已知一组整数中,有这样一种数非常怪,它们不在第一个,也不在最后一个,而且刚好都比左边和
右边相邻的数大,你能找到它们吗?
输入
第一行为整数m,表示输入的整数个数。( 3<= m <=100 )
第二行为m个整数。
输出
若干个支撑数,每行一个。
输入复制
14
1 3 2 4 1 5 3 9 7 10 8 23 85 43
输出复制
3
4
5
9
10
85
#include <iostream>
using namespace std;
int main()
{
	float a[200];
	int n;
	cin>>n;
	for(int i = 0;i<n;i++)
	{
		cin>>a[i];
	}
	for(int i = 0;i<n;i++)
	{
		if(a[i]>a[i-1]&&a[i]>a[i+1])
		{
			cout<<a[i]<<endl;
		}
	} 
	return 0;
}

排除异形基因
题目描述
神舟号飞船在完成宇宙探险任务回到地球后,宇航员张三感觉身体不太舒服,去了医院检查,医生诊
断结果:张三体内基因已被改变,原有人体基因序列中已经被渗入外星球不明异形生物基因,但可喜
的是,这些异形基因都有一个共同的特征,就是该基因序号的平方除以7的余数都是1,要赶快清除掉,
否则会危害整个人类。赶快行动吧。
输入
第一行是一个整数n(基因个数,3<=n<=200) 第二行是n个整数(张三的基因序列)
输出
去除异形基因后的正常序列,空格隔开
输入复制
4
6 2 8 12
输出复制
2 12
#include <iostream>
using namespace std;
int main()
{
	int a[250];
	int n;
	cin>>n;
	for(int i = 0;i<n;i++)
	{
		cin>>a[i];
	}
	for(int i = 0;i<n;i++)
	{
		if((a[i]*a[i])%7!=1)
		{
			cout<<a[i]<<" ";
		}
	} 
	return 0;
}

找找谁的身高超过全家的平均身高
题目描述
找找谁的身高超过全家的平均身高。全家n口人,输入输出数据如下: (平均身高保留一位小数)
输入
第一行有一个整数n( 1 < n < 11 )。第二行是n个整数,用空格隔开。
输出
第一行为全家的平均身高(保留一位小数);第二行有若干个数,为超过平均身高的人的身高厘米数。
输入复制
7
175 160 172 158 178 162 142
输出复制
AVE=163.9
1:175 3:172 5:178
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
	int a[20];
	int n;
	float sum;
	sum = 0;
	cin>>n;
	for(int i = 0;i<n;i++)
	{
		cin>>a[i];
		sum = sum+a[i];
	}
	sum = sum/n;
	cout<<"AVE="<<fixed<<setprecision(1)<<sum<<endl;
	for(int i = 0;i<n;i++)
	{
		if(a[i]>sum)
		{
			cout<<i+1<<":"<<a[i]<<"    ";
		}
	} 
	return 0;
}

考试成绩的分布情况
题目描述
期末考试结束,小明的语文老师想知道,这次考试的成绩分布情况,主要计算如下几个数据:平
均分、>=平均分的总人数、<平均分的总人数,请你写程序帮助小明的语文老师来计算一下!
输入
第一行,一个整数n代表有n个人的成绩(n<=100)
第二行,n个人的语文成绩
输出
3个值,分别代表平均分、>=平均分的总人数、<平均分的总人数,请注意,平均分保留1位小数!
输入复制
5
100 98 97 99 90
输出复制
96.8 4 1
​#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
	int a[200],cntd,cntx;
	int n;
	float sum;
	sum = 0;
	cin>>n;
	cntd = 0;
	cntx = 0;
	for(int i = 0;i<n;i++)
	{
		cin>>a[i];
		sum = sum+a[i];
	}
	sum = sum/n;
	cout<<fixed<<setprecision(1)<<sum<<" ";
	for(int i = 0;i<n;i++)
	{
		if(a[i]>=sum)
		{
			cntd++;
		}
		if(a[i]<sum)
		{
			cntx++;
		}
	}
	cout<<cntd<<" "<<cntx;
	return 0;
}

​

打折优惠
题目描述
商场周末大优惠,规定凡购物超过100元时,超过100元那部分便可打9折。小雄同妈妈一起购买了一
大批物品,你能帮他算出最终的应付款吗?
输入
第一行一个整数N,表示所买物品的个数。 (N<=100)
第二行N个空格隔开的整数,表示N件物品要付的元数。
输出
最终的应付款。(保留两位小数)
输入复制
5
60 80 50 30 20
输出复制
226.00
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
	float a[200];
	int n;
	float sum;
	sum = 0;
	cin>>n;
	for(int i = 0;i<n;i++)
	{
		cin>>a[i];
		sum = sum+a[i];
	}
	if(sum>100)
	{
		float a;
		a = sum-100;
		a = a*0.9;
		sum = 100+a;
	}
	cout<<fixed<<setprecision(2)<<sum;
	return 0;
}

橘子称重
学校买回来一大箱橘子,有m个(m>=100 && m <= 1000),橘子大小比较均匀,学校想称一下总共有多重,
发现大称坏掉了还没有修好,只有一个小的弹簧秤。学校又不想分开称,那样太慢了。
小明想了一个办法,由于橘子大小比较均匀,可以从中拿n个出来(n>=5 && n<=20),这n个橘子的重量弹
簧秤是可以称出来的,有了这n个橘子的重量,就可以计算出平均一个橘子有多重,这样就能知道整箱大约有多
重了。
请编写程序,从键盘读入橘子总数m,小明称的橘子的个数n以及这n个橘子的重量,计算出这箱橘子总共约有多
重(结果保留1位小数)。(4.1.52)
输入
2行,第一行2个整数m和n,分别代表一箱橘子的
总个数以及小明称的橘子的个数。
第二行为n个橘子的重量(整数)。
输出
一箱橘子的重量(保留1位小数)
输入复制
100 7
84 83 82 81 80 79 79
输出复制
8114.3
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
	int a[200];
	int n,z;
	double sum;
	sum = 0;
	cin>>z>>n;
	for(int i = 0;i<n;i++)
	{
		cin>>a[i];
		sum = sum+a[i];
	}
	sum = sum/n;
	cout<<fixed<<setprecision(1)<<sum*z;
	return 0;
}

陶陶摘苹果
题目描述
陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶
陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。
现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到
的苹果的数目。假设她碰到苹果,苹果就会掉下来。
输入
包括两行数据。第一行包含10个100到200之间(包括100和200)的整数(以厘米为单位)分别表示10个苹果到地
面的高度,两个相邻的整数之间用一个空格隔开。第二行只包括一个100到120之间(包含100和120)的整数(以
厘米为单位),表示陶陶把手伸直的时候能够达到的最大高度。
输出
包括一行,这一行只包含一个整数,表示陶陶能够摘到的苹果的数目。
输入复制
100 200 150 140 129 134 167 198 200 111
110
输出复制
5
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
	int a[15],cnt;
    cnt = 0;
	for(int i = 0;i<10;i++)
	{
		cin>>a[i];
	}
	int q;
	cin>>q;
	for(int i = 0;i<10;i++)
	{
		if(q+30>=a[i])
		{
			cnt++;
		}
	}
	cout<<cnt;
	return 0;
}

求和
题目描述
输入n( 1 <= n <= 5000 )个正整数,每个数都在1到20000之间;要求对这n个数中
的奇数和偶数分别求和。
输入
第一行,一个正整数n(1 <= n <= 5000 ); 第2-
n+1行,每行一个正整数,每个数都在1到20000之间。
输出
输出文件共有二行,每行包含一个整数,第一行为
所有奇数之和,第二行为所有偶数之和。
输入复制
5
3
10
7
5
8
输出复制
15
18
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
	int a[5100],cntj,cnto;
    cntj = 0;
    cnto = 0;
    int n;
    cin>>n;
    
	for(int i = 0;i<n;i++)
	{
		cin>>a[i];
		if(a[i]%2==1)
		{
			cntj = cntj+a[i];
		}
		if(a[i]%2==0)
		{
			cnto = cnto+a[i];
		}
	}
	cout<<cntj<<endl;
	cout<<cnto<<endl;
	return 0;
}

完美偶数
题目描述
完美偶数指的是,如果一个数本身是偶数,且这个数是偶数位的数,且这个数的各个位也是偶数,
那么这个数就可以称为完美偶数;比如:28就是完美偶数,而246就不是,因为246是一个3位数。
请你编程求出,从键盘读入的n个数中,哪些数是完美的偶数,输出他们。
输入
第一行是一个整数n(n<=100)
第二行是n个整数(这些整数都是1~9999范围内的整数)
输出
按顺序输出这n个数中的完美偶数,每个数一行
输入复制
5
26 4286 228 32
1280
输出复制
26
4286
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
	int a[5100],cntj,cnto;
    cntj = 0;
    cnto = 0;
    int n;
    int z;
    cin>>n;
	for(int i = 0;i<n;i++)
	{
		cin>>a[i];
		
	}
	for(int i = 0;i<n;i++)
	{
		z = a[i];
		int q;
		while(a[i]!=0)
		{
			a[i] = a[i]/10;
			q++;
		}
		int a1 = z/1%10;
		int a2 = z/10%10;
		int a3 = z/100%10;
		int a4 = z/1000%10;
		if(a1%2==0&&a2%2==0&&a3%2==0&&a4%2==0&&q%2==0&&z%2==0)
		{
			cout<<z<<endl;
		}
	}
	
	return 0;
}

输出奇数和偶数
题目描述
输入n个整数,将其中的奇数和偶数分别显示出来(1 < n < 30)
输入
第一行:一个整数n。第二行:n个空格隔开的整数。
输出
第一行:若干个奇数。第二行:若干个偶数。(每个数前面都有一个空格)
输入复制
10
21 12 33 43 59 68 77 18 19 40
输出复制
21 33 43 59 77 19
12 68 18 40
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
	int a[50],cntj,cnto;
    cntj = 0;
    cnto = 0;
    int n;
    int z;
    cin>>n;
	for(int i = 0;i<n;i++)
	{
		cin>>a[i];
		
	}
	for(int i = 0;i<n;i++)
	{
		if(a[i]%2==1)
		{
			cout<<a[i]<<" ";
		}
	}
	cout<<endl;
	for(int i = 0;i<n;i++)
	{
		if(a[i]%2==0)
		{
			cout<<a[i]<<" ";
		}
	}
	return 0;
}

拿到某个数的概率是多少?
题目描述
老师在一个不透明的纸袋里放入一些乒乓球,每个乒乓球上都有一个数字,当球放入之后,让小明
从中随机拿一个。在球放入之后,小明抽之前,老师想让您帮忙编程先计算一下,拿到某个数字x的
概率是多少?
比如:老师向袋子里面放入了5个球,对应的数字分别是2 3 2 4 2,那么拿到数字2的概率为3 / 5 =
0.6,拿到数字3的概率为1 / 5 = 0.2。(8.2)
输入
第一行是一个整数n代表袋子里球的个数(n<=100)
第二行n个数,代表袋子里每个球上面的数字的值
第三行一个整数x,是要计算出现概率的数字(x不一定在第
二行的n个数中出现,也就是说x对应的球可能在袋子里没
有)
输出
x被拿到的概率(结果保留2位小数)
输入复制
5
2 3 2 4 2
2
输出复制
0.60
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
	float a[150],cnt;
    cnt = 0;
    float n;
    cin>>n;
	for(int i = 0;i<n;i++)
	{
		cin>>a[i];
	}
	int q;
	cin>>q;
	for(int i = 0;i<n;i++)
	{
		if(a[i]==q)
		{
			cnt++;
		}
	}
	cout<<fixed<<setprecision(2)<<cnt/n;
	return 0;
}

哪个厂家的零件更标准?
题目描述
在统计描述中,方差用来计算每一个变量(观察值)与总体均数之间的差异。比如:甲乙2个厂商生产
某零件,一批零件要求在尺寸合格的情况下,大小越一致越好,由于生产工艺的问题,零件生产厂商生
产的零件不可能一模一样。
为了检测甲乙两个厂商,那个厂商生产的零件更符合标准,分别从2个厂商生产的零件中抽取5个样品尺
寸如下:
甲:100 101 102 100 99
乙:98 100 105 103 96
假设零件尺寸在95~110之间都算合格,那么两批零件都是合格的。
为了方便计算数据的离散程度,我们引入方差的概念,方差的计算公式为:
其中x1~xn代表一组数据中的每个元素,代表这组数据的平均值。
按照公式,甲厂零件的方差为:
(100-100.4)2+(101-100.4)2+(102-100.4)2+(100-100.4)2+(99-100.4)2=5.2
乙厂零件的方差为:
(98-100.4)2+(100-100.4)2+(105-100.4)2+(103-100.4)2+(96-100.4)2=53.2
从方差上也可以看出,甲厂的零件更符合标准!
现从键盘读入2个厂生产的零件尺寸(假设零件的尺寸都是合格的),请计算哪个厂的零件尺寸更加一致
(方差更小)?
输入
第一行为一个整数n,代表2个厂抽检的零件的个数!(n5~100之间)
第二行为甲厂的n个零件的尺寸
第三行为乙厂的n个零件的尺寸
输出
哪个厂的零件更加符合标准,甲厂请输出“jia”,乙厂请输出“yi”
输入复制
5
100 101 102 100 99
98 100 105 103 96
输出复制
jia
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
	float a[150],b[150],suma,sumb,suma1,sumb1;
    suma = 0;
    sumb = 0;
    float n;
    cin>>n;
    suma1 = 0;
    sumb1 = 0;
	for(int i = 0;i<n;i++)
	{
		cin>>a[i];
		suma1 = suma1+a[i];
	}
	for(int i = 0;i<n;i++)
	{
		cin>>b[i];
		sumb1 = sumb1+b[i];
	}
	float aq,bq;
	aq = suma1/n;
	bq = sumb1/n;
	for(int i = 0;i<n;i++)
	{
		suma = suma+(a[i]-aq)*(a[i]-aq);
	}
	for(int i = 0;i<n;i++)
	{
		sumb = sumb+(b[i]-bq)*(b[i]-bq);
	}
	if(suma<sumb)
	{
		cout<<"jia";
	}
	else
	{
		cout<<"yi"; 
	}
	return 0;
}

更多推荐