c/c++练习–09

c/c++练习–09


  • 习题来源:C语言经典编程282例

81. 彩球问题

在一个袋子里装有三色彩球,其中红色球有3个,白色球3个,黑色球6个,问当从袋子中取出8个球时共有多少种可能的方案。

#include 
using namespace std;    

int main(void){
    for(int i=0;i<4;i++)
        for(int j=0;j<4;j++)
            for(int k=0;k<7;k++)
                if(i+j+k==8)
                    cout<<"红色:"<"\t白色:"<"\t黑色:"<return(0);
}

82.灯塔数量

有一八层灯塔,每层的灯数都是上一层的2倍,共有765盏灯,求最上层与最下层的灯数。

#include 
using namespace std;    

int main(void){    
    int sum=0,n=2;
    while(sum != 765){
        sum = 255*n;
        n++;
    }
    cout<<"最下层为:"<1<<"最高层为:"<<128*(n-1)<return(0);
}

83.求1^2+2^2+…+10^2

#include 
using namespace std;    

int main(void){    
    int sum=0;

    for(int i=1;i<=10;i++){
        sum += i*i;
        cout<"^2";
        if(i<10)    cout<<'+';
    }       
    cout<<'='<return(0);
}

84.循环显示随机数

使用for循环语句显示10个随机数

#include 
using namespace std;    

int main(void){    
    cout<<"10个随机元素:"<for(int i=0;i<10;i++)
        cout<return(0);
}

85. 买西瓜

一农户在集市上卖西瓜,他总共有1020个西瓜,第一天卖掉一半多两个,第二天卖掉剩下的一半多两个,问照此规律卖下去,该农户几天能将所有的西瓜卖完。

#include 
using namespace std;    

int main(void){    
    int num=1020,n=0;

    while(num>0){
        num /=2;
        num -=2;
        n++;
    }

    cout<<"需要卖的天数为:"<return(0);
}

86.银行存款问题

假设银行当前整存零取五年期的年利息为2.5%,现在某人手里有一笔钱,预计在今后的五年当中每年年底取出1000,到第五年的时候刚好取完,计算在最开始存钱的时候要存多少钱?

#include 
using namespace std;    

int main(void){    
    float   sum=0;

    for(int i=0;i<5;i++)
        sum=(sum+1000)/(1+0.025);

    cout<<"总钱数为:"<return(0);
}

87.统计不及格人数

假设一个班有20个学生,输入某科考试的成绩,然后统计出该班不及格的学生人数。

#include 
using namespace std;    

int main(void){    
    float   sum[20]={0};
    int     n=0;

    cout<<"请输入20个学生成绩:"<for(int i=0;i<20;i++)
        cin>>sum[i];
     for(int i=0;i<20;i++)
         if(sum[i]<60)
             n++;

    cout<<"总人数为:"<return(0);
}

88. 猜数字游戏

猜数字游戏具体要求如下:开始时应输入要猜的数字的位数,这样计算机可以根据输入的位数随机分配一个符合要求的数据,计算机输入guess后便可以输入数字,注意数字间需用空格或回车符加以区分,计算机会根据输入信息给出相应的提示信息:A表示位置与数字均正确的个数,B表示位置不正确但数字正确的个数,这样便可以根据提示信息进行下次输入,直到正确为止,这时会根据输入的次数给出相应的评价。

#include 
using namespace std;    

void    Rules(){
    cout<<"开始时应输入要猜的数字的位数,这样计算机可以根据输入"
        <<"的位数随机分配一个符合要求的数据,计算机输入guess后"
        <<"便可以输入数字,注意数字间需用空格或回车符加以区分,"
        <<"计算机会根据输入信息给出相应的提示信息:A表示位置与"
        <<"数字均正确的个数,B表示位置不正确但数字正确的个数,"
        <<"这样便可以根据提示信息进行下次输入,直到正确为止,"
        <<"这时会根据输入的次数给出相应的评价"<int MainShow(){
    int num;
    cout<<"-----------------------------"<cout<<"1. Strat Game"<cout<<"2. Rules"<cout<<"3. Exit"<cout<<"-----------------------------"<cout<<"请输入您的选项:"<cin>>num;
    return(num);
}

void    Process(){
    int num= 9000*(double)(rand()/RAND_MAX)+1000;
    int n[4]={0},loct=0,nm=0,n2[4],flag=1;

    n2[3] = num%10;
    n2[2] = num/10%10;
    n2[1] = num/100%10;
    n2[0] = num/1000;
    while(flag){
        cout<<"Guess:";
        for(int i=0;i<4;i++){
            cin>>n[i];
            if(n[i] == n2[i])    nm++;
        }
        if(nm == 4)break;
        for(int i=0;i<4;i++){
            for(int j=0;j<4;j++)
                if(n[i] == n2[j])
                    loct++;
        }
        cout<" A "<" B"<cout<<"You Win"<int main(void){    
    int num;

    num=MainShow();
    while(num !=3){
        switch(num){
        case 1: Process();break;
        case 2: Rules();num=MainShow();break;
        default:num=MainShow();break;
        }
    }   
        return(0);
}

89. 求各元素之和

使用二维数组保存一个3行3列的数组,利用双重循环访问数组中的每一个元素,然后对每个元素进行累加计算。

#include 
using namespace std;    

int main(void){    
    int num[3][3]={0},sum=0;;

    cout<<"请输入元素:"<for(int i=0;i<3;i++){   
        for(int j=0;j<3;j++){
            cin>>num[i][j];
            sum += num[i][j];
        }
    }
    cout<return(0);
}

90.使用二维数组保存数据

从键盘为二维数组元素赋值,显示二维数组。

#include 
using namespace std;    

int main(void){    
    int num[3][3]={0};

    cout<<"请输入元素:"<for(int i=0;i<3;i++)
        for(int j=0;j<3;j++)
            cin>>num[i][j];
    for(int i=0;i<3;i++){
        for(int j=0;j<3;j++)        
            cout<'\t';
        cout<return(0);
}

你可能感兴趣的:(c-c++)