c/c++练习–10
- 习题来源:C语言经典编程282例
91.计算字符串中有多少个单词
输入一行字符,然后统计其中有多少个单词,要求每个单词之间用空格分隔开,最后的字符不能为空格。
#include <iostream>
using namespace std;
int main(void){
char ch='a';
bool flag(false);
int n(0);
while(ch !=EOF){
ch=cin.get();
if(isalpha(ch)){
flag=true;
continue;
}
if (flag || ~isalpha(ch)) {
n++;
flag = false;
}
}
cout<<"单词数为:"<<n<<endl;
return(0);
}
92.逆序存放数据
#include <iostream>
using namespace std;
int main(void){
int num[5]={0};
for(int i=4;i>=0;i--)
cin>>num[i];
for(int i=0;i<5;i++)
cout<<num[i]<<endl;
return(0);
}
93.相邻元素之和
从键盘中任意输入10个整数存放到数组中,求数组中相邻两元素的和,并将这些和存放在数组b中,按每行3个元素的形式输出。
#include <iostream>
using namespace std;
int main(void){
int num[10]={0},n[9]={0};
for(int i=0;i<10;i++)
cin>>num[i];
for(int i=0;i<9;i++)
n[i] = num[i]+num[i+1];
cout<<"原来的数据为:"<<endl;
for(int i=0;i<10;i++)
cout<<num[i]<<endl;
cout<<"相邻之和为:"<<endl;
for(int i=0;i<3;i++){
for(int j=0;j<3;j++)
cout<<n[i*3+j]<<'\t';
cout<<endl;
}
return(0);
}
94.选票统计
班级竞选班长,共有3个候选人,输入参加选举的人数及每个人选举的内容,输出三个候选问最终的得票数以及无效选票数。
#include <iostream>
using namespace std;
int main(void){
int num,p,n1=0,n2(0),n3(0),n(0);
cout<<"请输入投票人数:"<<endl;
cin>>num;
for(int i=0;i<num;i++){
cin>>p;
if(p==1) {
n1++;
continue;
}
if(p==2) {
n2++;
continue;
}
if(p==3){
n3++;
continue;
}
n++;
}
cout<<"1号得票:"<<n1<<endl;
cout<<"2号得票:"<<n2<<endl;
cout<<"3号得票:"<<n3<<endl;
cout<<"4号得票:"<<n<<endl;
return(0);
}
95.使用数组统计学生成绩
输入学生的学号及语文,数学,英语成绩,输出学生各科成绩及平均成绩
#include <iostream>
using namespace std;
int main(void){
int n(0),num[10]={0};
float chn[10]={0},math[10]={0},eng[10]={0},avg[10]={0};
cout<<"请输入学生数量:";
cin>>n;
for(int i=0;i<n;i++){
cin>>num[i]>>chn[i]>>math[i]>>eng[i];
avg[i] = (chn[i]+math[i]+eng[i])/3;
}
cout<<"学号\t语文\t数学\t英语\t平均"<<endl;
for(int i=0;i<n;i++)
cout<<num[i]<<'\t'<<chn[i]<<'\t'<<math[i]<<'\t'<<eng[i]<<'\t'<<avg[i]<<'\t'<<endl;
cout<<"单词数为:"<<n<<endl;
return(0);
}
96.查找数组中的最值
#include <iostream>
using namespace std;
int main(void){
int num[10];
cout<<"Please input 10 num:"<<endl;
for(int i=0;i<10;i++)
cin>>num[i];
int m=num[0],mi=num[0];
for(int i=1;i<10;i++) {
m = m>num[i]?m:num[i];
mi = mi<num[i]?mi:num[i];
}
cout<<"the max num is "<<m<<endl;
cout<<"the min num is"<<mi<<endl;
return(0);
}
97.判断一个数是否存在数组中
#include <iostream>
using namespace std;
int main(void){
int num[10]={1,2,3,4,5,6,7,8,9,0},n;
cout<<"Please input your num:"<<endl;
cin>>n;
for(int i=0;i<10;i++){
if(num[i]==n) {
cout<<"YES"<<endl;
exit(0);
}
}
cout<<"N0"<<endl;
return(0);
}
98.求二维数组对角线之和
#include <iostream>
using namespace std;
int main(void){
int num[3][3]={1,2,3,4,5,6,7,8,9},sum(0);
for(int i=0;i<3;i++){
sum += num[i][i];
}
cout<<sum<<endl;
return(0);
}
99.模拟比赛打分
从键盘中输入选手人数,然后输入裁判对每位选手的打分情况,这里假设裁判有5位,在输入完以上内容后,输出每位选手的总成绩
#include <iostream>
using namespace std;
int main(void){
int n(0);
float num[10][6]={0};
cout<<"Enter the number of the players:"<<endl;
cin>>n;
for(int i=0;i<n;i++) {
cout<<"Player "<<i+1<<endl;
cin>>num[i][0]>>num[i][1]>>num[i][2]>>num[i][3]>>num[i][4];
num[i][5] =(num[i][0]+num[i][1]+num[i][2]+num[i][3]+num[i][4]) ;
}
cout<<"Player\tJudgeA\tJudgeB\tJudgeC\tJudgeD\tJudgeE\tSores"<<endl;
for(int i=0;i<4;i++)
cout<<i+1<<'\t'<<num[i][0]<<'\t'<<num[i][1]<<'\t'<<num[i][2]<<'\t'<<num[i][3]<<'\t'<<num[i][4]<<'\t'<<num[i][5]<<endl;;
return(0);
}
100.矩阵的转置
将一个二维数组的行和列元素互换,存到另一个二维数组中
#include <iostream>
using namespace std;
int main(void){
int m(0),n(0);
float a[10][10]={0},b[10][10]={0};
cout<<"Enter the number of the row:"<<endl;
cin>>m;
cout<<"Enter the number of the columns:"<<endl;
cin>>n;
for(int i=0;i<m;i++)
for(int j=0;j<n;j++)
cin>>a[i][j];\
cout<<"Array a:"<<endl;
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
cout<<a[i][j]<<'\t';
b[j][i] = a[i][j];
}
cout<<endl;
}
cout<<"Array b:"<<endl;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++)
cout<<b[i][j]<<'\t';
cout<<endl;
}
return(0);
}