数组的基本操作及应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数组的基本操作及应用
一、数组的基本操作
1.查找
【问题描述】
有10个同学的学号及成绩如下表所示:
要求:输入一个学号,输出该学号同学的成绩。
【分析】
用数组A和B分别存放同学的学号和成绩;
当输入一个学号后,只要在数组A中搜索一下X的位置,再输出该位置的数组B中的
元素即可;
注意,输入的学号可能不存在。
【参考程序】
#include
#include
using namespace std;
int a[10+1]={0,23,12,38,25,9,36,10,16,33,28}, b[10+1], i, f, x; // cin >> n; int a[n+1];
int main()
{
for (i=1; i<=10; i++) // 读入每位同学的学号及成绩
cin >> a[i] >> b[i]; // scanf(“%d%d”, &a[i], &b[i]);
f = 0; // f为查找标记
cin >> x; // 输入学号: x=16
for(i=1; i<=10; i++) // 查找
if (x==a[i]) {
cout << a[i] << ”--” << b[i] << endl;
f = 1;
break;
}
if (f==0) cout << “Not found!”
return 0;
}
//data 23, 89, 12, 96, 38, 75, 25, 88, 9, 69
//data 36, 100, 56, 16, 98, 33, 74, 28, 90
2.删除、移动
【问题描述】
有10个大小不同的数,次序凌乱地放在A数组中,请找出其中的最大数以及最大数所在的位置,并将该数删除,它后面的元素依次前移。{或仅打标记}
【参考程序】
#include
#include
using namespace std;
int main()
{
int a[11], i, max, t;
for (i=1; i<=10; i++) cin >> a[i];
max = a[1]; // 假设第一个元素是最大数
t = 1;
for (i=2; i<=10; i++) // 找最大数
if (a[i] > max) {
max = a[i];
t = i;
}
cout << “max=” << max << ”wei zhi:” << t << endl;
for (i=t; i<=9; i++) // 删除最大数后,后面的数依次前移
a[i] = a[i+1];
for (i=1; i<=9; i++)
cout << a[i] << " ";
cout << endl;
return 0;
}