C15-5.25一维数组的应用2
原题链接:38471.note12025-05-25 20:54:58
发布于:江苏
一、作业回顾
1.九章算术
#include<iostream>
using namespace std;
int main()
{
int ans = 0;
int n, a[1005], m, x, y;
cin >> n >> m;
for (int i=1; i<=n; i++) cin>>a[i];
while (m--)
{
int i, j, k;
cin >> i >> j >> k;
if (k == 1){
ans += a[i] + a[j];
} else if (k == 2){
ans += a[i] - a[j];
} else if (k == 3){
ans += a[i] * a[j];
}
}
cout << ans;
return 0;
}
2. 数据处理
#include<iostream>
using namespace std;
int main()
{
long long n, a[500005], m, x, y;
cin >> n >> m;
for (int i=1; i<=n; i++) cin>>a[i];
while (m--){
cin >> x >> y;
a[y] = a[x] + a[y];
}
for (int i=1; i<=n; i++){
cout << a[i] << " ";
}
return 0;
}
二、课堂案例
1. 支撑数
#include<iostream>
using namespace std;
int main(){
int a[105] = {}, n;
cin >> n;
for (int i=1; i<=n; i++) cin>>a[i];
for (int i=2; i<n; i++){
if (a[i-1] < a[i] && a[i]>a[i+1]){
cout << a[i] <<endl;
}
}
return 0;
}
2. 最大值个数
#include<iostream>
using namespace std;
int main()
{
int n,a[1005]= {};;
cin>>n;
for(int i=1; i<=n; ++i) cin>>a[i];
int maxx = a[1]; //假设第一个是擂主
for(int i=1; i<=n; ++i) {
if (maxx < a[i]) maxx=a[i]; //更新擂主
}
int cnt = 0; //统计最大值出现的次数
for(int i=1; i<=n; ++i) {
if (a[i]==maxx) {
cnt ++;
}
}
cout<<maxx<<endl<<cnt;
return 0;
}
3. 平均分
#include<iostream>
using namespace std;
int main(){
int n, a[1005] = {};
double ave = 0;
cin >> n;
for (int i=1; i<=n; i++){
cin >> a[i];
ave += a[i];
}
ave/=n;
printf("%.3lf\n", ave);
for (int i=1; i<=n; i++){
if (a[i] > ave){
cout << a[i] <<" ";
}
}
return 0;
}
三、作业提示
1. 数字统计
记住不要一个循环做多个事情, 独立开来分开做。
2. 奇偶交换
分组输出,下标12为一组,下标34为一组
1 2 3 4
1 2 3 4
for (int i=1; i<=n; i+=2){
cout << a[i+1] << ' '<<a[i] << ' ';
}
这里空空如也
有帮助,赞一个