2024年4月27日 C++上课记录
3307:【例52.1】 不与最大数相同的数字之和
不与最大数相同的数字之和
题目描述
输出一个整数数列中不与最大数相同的数字之和。
输入格式
输入分为两行:
第一行为 \(N\)(\(N\) 为接下来数的个数,\(N \le 100\));
第二行为 \(N\) 个整数,数与数之间以一个空格分开,每个整数的范围是 \(-1000,000\) 到 \(1000,000\)。
输出格式
输出为 \(N\) 个数中除去最大数其余数字之和。
样例 #1
样例输入 #1
3
1 2 3
样例输出 #1
3
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
int a[n];
int max;
for(int i=0;i<n;i++){
cin>>a[i];
}
max = a[0];
for(int i=0;i<n;i++){
if(max<a[i]) max=a[i];
}
int sum=0;
for(int i=0;i<n;i++){
if(a[i]!=max){
sum+=a[i];
}
}
cout<<sum;
}
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,max,sum=0;
cin>>n;
int a[n];
for(int i=0;i<n;i++){
cin>>a[i];
if(i==0) max=a[i];
if(max<a[i]) max=a[i];
}
for(int i=0;i<n;i++){
if(a[i]!=max){
sum+=a[i];
}
}
cout<<sum;
}
3309:练52.1 输出成绩
输出成绩
题目描述
给定n个小朋友的数学成绩,求这n个小朋友的平均成绩,以及输出所有高于平均成绩的数学成绩(按输入的顺序输出)。
输入
第一行一个整数n,接下来n行每行一个小于等于100的整数(n≤1000)。
输出
第一行是n个成绩的平均值,保留3位小数。
接下来若干行输出高于平均分的成绩,每行一个数。
输入样例
5
10
20
30
40
60
输出样例
32.000
40
60
#include<bits/stdc++.h>
using namespace std;
int main(){
int n; //数字个数
double pingjun=0; // 平均分
cin>>n; //输入数字个数
int a[n]; //定义数组a[n]
for(int i=0;i<n;i++){ //遍历输入数组元素,并累加求和pinjun
cin>>a[i];
pingjun+=a[i];
}
pingjun = pingjun/n; //计算平均分
cout<<fixed<<setprecision(3)<<pingjun<<endl; //保留3位小数输出平均分
for(int i=0;i<n;i++){ //遍历输出数组元素(大于平均分的数组元素)
if(pingjun<a[i]){
cout<<a[i]<<endl;
}
}
}
3310:练52.2 数组间的比较大小
题目描述
有两个数组\(a\)和\(b\),各有\(10\)个元素,将它们对应的逐个比较(即\(a[0]\)与\(b[0]\)比,\(a[1]\)与\(b[1]\)比,余此类推)。
如果\(a\)数组中的元素大于\(b\)数组中的相应元素的数目多于\(b\)数组中元素大于\(a\)数组中相应元素的数目(例如\(a[i]>b[i]6\)次,而\(b[i]>a[i]3\)次),则判定\(a\)数组大于\(b\)数组。
请写一个程序判断\(a\)数组和\(b\)数组的大小关系,并统计出两个数组对应元素大于、等于、小于的次数。
输入
有两行,每一行有\(10\)个用空格隔开的整数,表示\(a\)数组和\(b\)数组
输出
首先在第一行内输出\(a\)数组中元素与\(b\)数组中对应元素的大于、等于、小于的次数,用空格隔开。\n若\(a\)数组大于\(b\)数组,则在第二行中输出“a>b
”;若\(a\)数组小于\(b\)数组,则输出“a<b
”;若两个数组相等,则输出“a=b
”。\n请注意不需要输出引号,并请注意行尾输出换行。
输入样例
1 3 5 7 9 8 6 4 2 0
5 3 8 9 -1 -3 5 6 0 4
输出样例
4 1 5
a<b
#include<bits/stdc++.h>
using namespace std;
int main(){
int a[10],b[10];
int d=0,e=0,l=0;
for(int i=0;i<10;i++){
cin>>a[i];
}
for(int i=0;i<10;i++){
cin>>b[i];
}
for(int i=0;i<10;i++){
if(a[i]>b[i]) d++;
else if(a[i]==b[i]) e++;
else l++;
}
cout<<d<<" "<<e<<" "<<l<<endl;
if(d>l) cout<<"a>b";
else if(d==l) cout<<"a=b";
else cout<<"a<b";
}