c语言编程题02

1. 使用switch-case实现学生成绩管理

从外部输入一个学习成绩,范围为0 – 100:

成绩大于等于90分,则输出A,

成绩大于等于80,则输出B,

成绩大于等于60,则输出C,

小于60,则输出D

提示:取成绩的十位,判断与9 10 8 7 6 是否相等。

#include <stdio.h>

int main(int argc, const char *argv[])
{
    int score;
    char degree;
    printf("请输出学生的成绩\n");
    scanf("%d", &score);

    if(score < 0 || score > 100)
        printf("输出成绩不合法\n");
    else{                                                   
        switch(score/10){
            case 10:
            case 9:
                printf("grade = A\n");
                break;
            case 8:
                printf("grade = B\n");
                break;
            case 7:
            case 6:
                printf("grade = C\n");
                break;
            default:
                printf("grade = D\n");
                break;

        }
    }
}

2. 猴子吃桃

猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个

第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下

的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。

2.1 while循环实现
#include <stdio.h>                                                   

int main(int argc, const char *argv[]){

    int i = 1;
    int peach_number = 1;
    while(i < 10){
        peach_number =(peach_number + 1) * 2;
       // printf("i = %d, peach_number = %d\n", i, peach_number);
        i++;
    }
    printf("猴子一共摘了%d个桃子\n", peach_number);

    return 0;
}
                                                                     
2.2 for循环实现
#include <stdio.h>

int main(int argc, const char *argv[]){
    int i = 1;
    int peach_number = 1;
    for(int i = 1; i < 10; i++){
        peach_number =(peach_number + 1) * 2;
    }
    printf("猴子一共摘了%d个桃子\n", peach_number);

    return 0;
}                                                      

3.水仙花数

打印100-1000以内的所有的水仙花数

水仙花数:是指一个三位数的每一位的立方和还等于这个数,则这个数称之为水仙花数

例如:

num = 个位数的立方 + 十位数的立方 + 百位数的立方

if(153== 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3)

{

        153就是水仙花数

}

3.1 while循环实现

使用gcc编译的时候,需要加-lm

 #include <stdio.h>
 #include <math.h>
 
 int main(int argc, const char *argv[])
 {
     int i = 100;
     int gw, sw, bw;
     while(i < 1000){
         bw = i / 100;
         sw = i / 10 % 10;
         gw = i % 10;
         if(i == pow(bw, 3) + pow(gw, 3) + pow(sw, 3))
             printf("%d  ", i);
         i++;
     }
     return 0;
 }                                                             
3.2 使用for循环实现
#include <stdio.h>
#include <math.h>
                                                      
int main(int argc, const char *argv[])
{
    int i = 100;
    int gw, sw, bw;
    for(int i = 100; i < 1000; i++){
        bw = i / 100;
        sw = i / 10 % 10;
        gw = i % 10;
        if(i == pow(bw, 3) + pow(gw, 3) + pow(sw, 3))
            printf("%d  ", i);
    }
    return 0;
}

4.打印平行四边形

for循环打印以下形状,_是一个空格

********

_********

__********

___********

____********

_____********

4.1 使用for循环实现
#include <stdio.h>

int main(int argc, const char *argv[])
{
    for(int i = 0; i < 6; i++){
        for(int j = 0; j < 8 + i; j++){
            if(i <= j)
                printf("*");
            else
                printf(" ");
        }
        printf("\n");
    }                                           
    return 0;
}
4.2使用while循环实现
#include <stdio.h>

int main(int argc, const char *argv[])
{
    int i = 0;                               
    while(i < 6){
        int j = 0;
        while(j < 8 + i){
            if(i <= j)
                printf("*");
            else
                printf(" ");
            j++;
        }
        printf("\n");
        i++;
    }
    return 0;
}

5.  99 乘法表

5.1 通过while循环
 #include <stdio.h>                                   
 
 int main(int argc, const char *argv[])
 {
     int i = 1;
     while(i <= 9){
         int j = 1;
         while(j <= i){
             printf("%d * %d = %-2d", i, j, i * j);
             j++;
         }
         printf("\n");
         i++;
     }
     return 0;
 }

5.2 通过for循环实现

 #include <stdio.h>
 
 int main(int argc, const char *argv[])
 {
     for(int i = 1; i <= 9; i++){
         for(int j = 1; j <= i; j++ ){
             printf("%d * %d = %-2d", i, j, i * j);
         }
         printf("\n");
     }
     return 0;
 }                                                   

6.打印图案

使用嵌套循环产生下列图案,要求用for嵌套循环

F

_FE

__FED

___FEDC

____FEDCB

_____FEDCBA

6.1 使用for循环实现
#include <stdio.h>


int main(int argc, const char *argv[])
{
    int index = 70;
    int times = 1;
    for(int i = 0; i < 6; i++){
        for(int j = 0; j < times + i; j++){
            if(i <= j)
                printf("%c", index--);
            else
                printf("_");
        }
        times++;
        index = 70;
        printf("\n");
    }
    return 0;
}                                             
                                              
  • 10
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值