04373 C++程序设计 2019版 第一章习题五、程序设计题
题目:
1、编写一个程序,将从键盘输入的n个字符串保存在一个一维数组A中。在输入字符串之前,先输入n的值。要求,数组A需要动态申请空间,程序运行结束前再释放掉。
#include <iostream>
using namespace std;
int main(){
cout<<"请输入字符串个数:";
int n;
//输入n
cin>>n;
//动态申请字符串数组,以n作为数组长度
string *A = new string[n];
for(int i=0;i<n;i++){
cout<<"请输入第"<<i+1<<"个参数:";
cin>>A[i];
}
cout<<"开始打印数组"<<endl;
for(int j=0; j<n; j++){
cout<<"A["<<j<<"]="<<A[j]<<endl;
}
//释放数组内存
delete []A;
return 0;
}
输出:
2、在题目1的基础上,输出n个字符串中最长的和最短的串,计算n个串的平均长度并输出结果。
#include <iostream>
using namespace std;
int main(){
cout<<"请输入字符串个数:";
int n;
cin>>n;
string *A = new string[n];
for(int i=0;i<n;i++){
cout<<"请输入第"<<i+1<<"个参数:";
cin>>A[i];
}
cout<<"开始打印数组"<<endl;
//最长串
string longest="";
//最短串
string shortest="";
//总长度
int totalLen=0;
for(int j=0;j<n;j++){
cout<<"A["<<j<<"]="<<A[j]<<endl;
//统计总长度
totalLen+=A[j].length();
//首次循环直接为最长串与最短串设置当前循环字符串
if(longest==""){
longest=A[j];
}
if(shortest==""){
shortest=A[j];
}
//判断更新最长与最短串
if(longest.length()<A[j].length()){
longest=A[j];
}
if(shortest.length()>A[j].length()){
shortest=A[j];
}
}
cout<<"最长串:"<<longest<<"\t最短串:"<<shortest<<"\t总长度:"<<totalLen<<"\t平均长度:"<<totalLen/n<<endl;
delete []A;
return 0;
}
输出: