秦乐妍
(中原铃菜)
1
题目描述:
之前我们学习了给函数传递一个普通的变量,一个指针,一个引用。
如何给函数传递一个数组呢?
实际上给函数传递一个数组等价于传递一个指针,表示数组的第一个元素的地址。
比如
sum函数用来计算a数组的和,只需要传入a数组的地址,以及数组长度就可以了。
修改数组的元素可以直接修改主函数中数组的值。
如上我们可以用【数组名称+一个整数】的形式来进行偏移访问数组中某一个元素的地址。
比如上面的a+1就表示下标为1的元素的地址。
字符数组的传递如上,遍历一个字符数组可以一直将指针往后移动,一直到碰到字符串结束符为止。
利用函数传数组参数的形式
分别求三个数组的最大值和最小值。
输入格式:
第一行输入一个整数n
第二行输入n个整数,以空格隔开
第三行输入一个整数m
第四行输入m个整数,以空格隔开
第五行输入一个整数q
第六行输入q个整数,以空格隔开
输出格式:
输出三行,每行两个整数。
分别表示三个数组的最大值,最小值。
约定:
1<=n,m,q<=100
楼逸杨
(楼逸杨)
2
核心代码
for(int i=1;i<=3;i++){
cin>>t;
int x=99999999,d=-1;
for(int j=1;j<=t;j++){
cin>>c;
if(c>d) d=c;
if(c<x) x=c;
}
cout<<d<<" "<<x<<endl;
}
AC给解决方案!!!
楼逸杨
(楼逸杨)
5
//定义t与c
for(int i=1;i<=3;i++){
cin>>t;//有几个数
int x=99999999,d=-1;
for(int j=1;j<=t;j++){
cin>>c;//输入数
if(c>d) d=c;//最大值判断
if(c<x) x=c;//最小值判断
}
cout<<d<<" "<<x<<endl;//输出
}
// 返回 0
秦乐妍
(中原铃菜)
7
#include<bits/stdc++.h>
using namespace std;
int main(){
int a,b,c;
int a1[105],b1[105],c1[105];
int sum1=0,sum2=0,sum3=0;
int cnt1=0,cnt2=0,cnt3=0;
cin >> a;
for(int i=1;i<=a;i++){
cin >> a1[i];
sum1=max(a1[i]);
cnt1=min(a1[i]);
}
cout << sum1 << " " << cnt1 << endl;
cin >> b;
for(int i=1;i<=b;i++){
cin >> b1[i];
sum2=max(b1[i]);
cnt2=min(b1[i]);
}
cout << sum2 << " " << cnt2 << endl;
cin >> c;
for(int i=1;i<=c;i++){
cin >> c1[i];
sum3=max(c1[i]);
cnt3=min(c1[i]);
}
cout << sum3 << " " << cnt3 << endl;
return 0;
}
自己做的,CE,用你这个咋改
楼逸杨
(楼逸杨)
8
#include<bits/stdc++.h>
using namespace std;
int main(){
int a,b,c;
int a1[105],b1[105],c1[105];
int sum1=0x3f3f3f3f,sum2=0x3f3f3f3f,sum3=0x3f3f3f3f;
int cnt1=-1,cnt2=-1,cnt3=-1;
cin >> a;
for(int i=1;i<=a;i++){
cin >> a1[i];
sum1=min(a1[i],sum1);
cnt1=max(a1[i],cnt1);
}
cout << cnt1 << " " << sum1 << endl;
cin >> b;
for(int i=1;i<=b;i++){
cin >> b1[i];
sum2=min(b1[i],sum2);
cnt2=max(b1[i],cnt2);
}
cout << cnt2 << " " << sum2 << endl;
cin >> c;
for(int i=1;i<=c;i++){
cin >> c1[i];
sum3=min(c1[i],sum3);
cnt3=max(c1[i],cnt3);
}
cout << cnt3 << " " << sum3 << endl;
return 0;
}