}
}
5.2.2运行结果
请按照由小到大的顺序输入15个整数
1
2
3
4
5
6
7
8
9
10
2
输入的数据不满足题目要求请重新输入
11
12
3
输入的数据不满足题目要求请重新输入
13
14
15
请输入要寻找的数
5
找到了数字5它在数组中的位置是5
请问需要输入新的数据继续寻找吗?
请输入Y(y)或者N(n)
实验5.3
5.3.1题目:
编一程序,将2个字符串连接起来,结果取代第一个字符串。
用字符数组,不用stract函数(即自己写一个具有strcat函数功能的函数)
用c标准库的strcat函数
用string方法定义字符串变量
对这三种方法进行比较
5.3.2第一种方法的代码
#include
usingnamespacestd;
intmain()
{
charstring1[100],string2[100];
cout<<"请输入字符串1"<cin>>string1;
cout<<"请输入字符串2"<cin>>string2;
inti=0,j=0;
while(string1[i]!
='\0')
i++;
while(string2[j]!
='\0')
string1[i++]=string2[j++];
string1[i]='\0';
cout<<"结合后的字符串为"<}
5.3.3第一种方法的运算结果
请输入字符串1
C++
请输入字符串2
Programing
结合后的字符串为C++Programing
Pressanykeytocontinue
5.3.4第二种方法的代码
#include
usingnamespacestd;
intmain()
{
charstring1[100],string2[100];
cout<<"请输入字符串1"<cin>>string1;
cout<<"请输入字符串2"<cin>>string2;
strcat(string1,string2);
cout<<"结合后的字符串为"<}
5.3.5第二种方法的运行结果
请输入字符串1
C++
请输入字符串2
Programing
结合后的字符串为C++Programing
Pressanykeytocontinue
5.3.6第三种方法的代码
#include
#include
usingnamespacestd;
intmain()
{
strings1,s2;
cout<<"请输入字符串1"<cin>>s1;
cout<<"请输入字符串2"<cin>>s2;
s1+=s2;
cout<<"结合后的字符串为"<}
5.3.7第三种方法的运行结果
请输入字符串1
C++
请输入字符串2
Programing
结合后的字符串为C++Programing
Pressanykeytocontinue
实验5.4
5.4.1题目:
输入十个学生的姓名,学号和成绩,将其中不及格者的姓名,学号和成绩输出。
5.4.2代码
分析第一部分应该解决数据输入和保存的问题可以用2个整型数组分别保存学号和成绩
用一个字符串数组保存姓名
第二部分遍历所有的成绩找出不及格的然后根据序列i输出对应的学号和成绩
#include
#include
usingnamespacestd;
intmain()
{
intstudent_number[10],score[10];
stringname[10];
inti=0;
cout<<"请输入10个学生的姓名学号和成绩"<for(i=0;i<10;i++)
{
cout<<"请输入第"<
cin>>name[i]>>student_number[i]>>score[i];
}
cout<<"不及格的名单"<for(i=0;i<10;i++)
{
if(score[i]<60)
cout<}
}
5.4.3运行结果
请输入10个学生的姓名学号和成绩
请输入第1个学生的姓名学号和成绩
张三0188
请输入第2个学生的姓名学号和成绩
李四0287
请输入第3个学生的姓名学号和成绩
王老五0386
请输入第4个学生的姓名学号和成绩
张四0485
请输入第5个学生的姓名学号和成绩
张武0599
请输入第6个学生的姓名学号和成绩
张六0623
请输入第7个学生的姓名学号和成绩
张琪0734
请输入第8个学生的姓名学号和成绩
张巴0978
请输入第9个学生的姓名学号和成绩
张就0877
请输入第10个学生的姓名学号和成绩
张世1056
不及格的名单
张六6
张琪7
张世10
Pressanykeytocontinue
实验5.5
5.5.1题目:
找出一个4行5列的二维数组的“鞍点”,即该位置上的元素在该行上最大,在该列上最小。
也可能没有鞍点。
5.5.2第一种情况直接对数组进行初始化
#include
usingnamespacestd;
intmain()
{
inta[4][5]={{1,2,3,4,5},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}};
inti=0,j=0,max,maxj;
boolflag=true;//用来记录是否有鞍点先默认有鞍点
for(i=0;i<4;i++)
{
max=a[i][0],maxj=0;//先假设每行最大的元素为首元素
for(j=0;j<5;j++)
if(a[i][j]>max)
{
max=a[i][j];//找出每行最大的数并保存在max中
maxj=j;//把行最大元素的列坐标保存在maxj中
}
for(i=0;i<4;i++)
{
if(a[i][maxj]flag=false;//如果这一行的最大值max不是“鞍点”那么继续外层for循环进入下一行
}
if(flag)//因为一个二维数组最多有一个鞍点所以如果这一点是鞍点那么就是唯一的鞍点可以直接跳出循环
{
cout<<"鞍点是"<<"a["<
break;
}
}
if(flag==false)//如果没有鞍点输出
cout<<"这个数组没有鞍点"<}
5.5.3运行结果
鞍点是a[4][4]=5
Pressanykeytocontinue
5.5.4自己输入数组元素
代码
#include
usingnamespacestd;
voidSetArray(inta[4][5]);
voidFindAndian(inta[4][5]);
intmain()
{
inta[4][5];
SetArray(a);
FindAndian(a);
}
voidSetArray(inta[4][5])
{
cout<<"请输入一个4行5列的二维数组"<inti,j;
for(i=0;i<4;i++)
for(j=0;j<5;j++)
cin>>a[i][j];
}
voidFindAndian(inta[4][5])
{
inti=0,j=0,max,maxj;
boolflag=true;//用来记录是否有鞍点先默认有鞍点
for(i=0;i<4;i++)
{
max=a[i][0],maxj=0;//先假设每行最大的元素为首元素
for(j=0;j<5;j++)
if(a[i][j]>max)
{
max=a[i][j];//找出每行最大的数并保存在max中
maxj=j;//把行最大元素的列坐标保存在maxj中
}
for(i=0;i<4;i++)
{
if(a[i][maxj]flag=false;//如果这一行的最大值max不是“鞍点”那么继续外层for循环进入下一行
}
if(flag)//因为一个二维数组最多有一个鞍点所以如果这一点是鞍点那么就是唯一的鞍点可以直接跳出循环
{
cout<<"鞍点是"<<"a["<
break;
}
}
if(flag==false)//如果没有鞍点输出
cout<<"这个数组没有鞍点"<}
5.5.5运行结果
请输入一个4行5列的二维数组
12345
246810
3691215
48121620
鞍点是a[4][4]=5
Pressanykeytocontinue
请输入一个4行5列的二维数组
112345
246810
3691215
48121620
这个数组没有鞍点
Pressanykeytocontinue