c/c++练习–10

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);
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值