美文网首页
c语言基础程序练习

c语言基础程序练习

作者: 古拉啦啦 | 来源:发表于2019-07-31 23:02 被阅读0次

    基础程序练习

    前言:

    前面已经给大家讲了一些基本的东西,今天小编就不更新新的知识点了,给大家几个例题,消化消化已经讲过的内容,知识不是学的多就好,而是会的多才好哦。

    题目一:分别求二维数组,求对角线,反对角线之和

    题目分析:用两个for循环语句就可以解决求和,对角线就是横坐标和纵坐标相同就是,但是反对角线呢,横坐标和纵坐标之和等于一个确定值,那么在这里可以发现等于2。

     #include<stdio.h>
     #include<stdlib.h>
     int  main() {
    
    int sum = 0;
    int  duisum = 0;
    int  xieduisum = 0;
    
    int a[3][3] = { {1,2,3},{1,2,3},{1,2,3} };
    for (int i = 0; i < 3; i++) {
        for (int b = 0; b < 3; b++) {
            sum += a[i][b];
            if (i == b) {
                duisum += a[i][b];
            }
            if ((i + b) == 2) {
                xieduisum += a[i][b];
            }
        }
    
    }
    printf("二维数组之和为%d\n", sum);
    printf("二维数组对角线之和为%d\n", duisum);
    printf("二维数组斜对角线之和为%d\n", xieduisum);
    system("pause");
    return 0;
        }
    
    结果: 1.png

    题目二:

    有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

    分析:组成所有可能的组合,去掉不符合条件的组合。

    #include <stdio.h>
    #include <conio.h>
    void main()
    {
        int i, j, k;   //分别为三位
        int sum = 0;
        printf("\n");
        for (i = 1; i < 5; i++) //以下为三重循环
            for (j = 1; j < 5; j++)
                for (k = 1; k < 5; k++)
                {
                    if (i != k && i != j && j != k) {//确保i、j、k三位互不相同
                        printf("%d, %d, %d\n", i, j, k);
                        sum++;
                    }
                }
        printf("总共有%d个", sum);
        getchar();
    }
    
    结果: 2.png

    题目三:

    企业发放的奖金根据利润提成。

    1. 利润(低于或等于10万元时,奖金可提10%;
    2. 利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;
    3. 20万到40万之间时,高于20万元的部分,可提成5%;
    4. 40万到60万之间时高于40万元的部分,可提成3%;
    5. 60万到100万之间时,高于60万元的部分,可提成1.5%,
    6. 高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润,求应发放奖金总数?

    分析:
    提成有很多中算法,对应很多种,就对应C中的多中选择,用户输入利润,首先判断利润的范围,在对应相应的提成算法即可。

     #include<stdio.h>
     #include<stdlib.h>
     int grate(double lirui);
    
     int main(){
    
    double lirui = 0;
    
    double jiangjin = 0;
    char iscontinue;
    
    
    while (1) {
    
        //提示用户当月的利润数额
        printf("请输入利润:");
        scanf_s("%d", &lirui);
    
        int dengjie = grate(lirui);     //计算奖金数额
        switch (dengjie)
        {
        case 1:
            jiangjin = lirui * 0.1;
            printf("奖金为%f万\n", jiangjin);
            break;
        case 2:
            jiangjin = 10 * 0.1 + (lirui - 10)*0.075;
            printf("奖金为%f万\n", jiangjin);
            break;
        case 3:
            jiangjin = 10 * 0.1 + 10 * 0.75 + (lirui - 20)*0.05;
            printf("奖金为%f万\n", jiangjin);
            break;
        case 4:
            jiangjin = 10 * 0.1 + 10 * 0.075 + 20 * 0.05 + (lirui - 40)*0.03;
            printf("奖金为%f万\n", jiangjin);
            break;
        case 5:
            jiangjin = 10 * 0.1 + 10 * 0.075 + 20 * 0.05 + 20 * 0.03 + (lirui - 60)*0.015;
            printf("奖金为%f万\n", jiangjin);
            break;
    
        default:
            jiangjin = 10 * 0.1 + 10 * 0.075 + 20 * 0.05 + 20 * 0.03 + 100 * 0.015 + (lirui - 100)*0.01;
            printf("奖金为%f万\n", jiangjin);
            break;
        }
        
        //选择是否继续
        
    }
    system("pause");
    return 0;
              } //计算等级数
    int grate(double lirui) {
    int dengji = 0;
    if (lirui <= 10)
        dengji = 1;
    if (10 < lirui <= 20)
        dengji = 2;
    if (20 < lirui <= 40)
        dengji = 3;
    if (40 < lirui <= 60)
        dengji = 4;
    if (60 < lirui <= 100)
        dengji = 5;
    if (lirui > 100)
        dengji = 6;
    return dengji;
     }
    
    结果: 3.png

    题目四:

    一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

    #include<stdio.h>
    #include<stdlib.h>
    #include<math.h>
    int main() {
    int answer = 0;
    for (int i = 0; i < 100000; i++) {
        int a = sqrt(i + 100);
        int b = sqrt(i + 368);
        if ((a*a - 100) == i && (b*b - 368) == i) {
            printf("这个数为%d:\n", i);
    
        }
    }
    system("pause");
    return 0;
      }
    
    结果: 4.png

    大家看不懂的可以扣我的

    总结:

    学习是不断进步的过程,写代码是不断改正的过程,今天下这四个代码,花费了我很多时间,不过高兴的是,最后都写出来了,最高兴的就是努力了有结果,期待有结果的明天!

    相关文章

      网友评论

          本文标题:c语言基础程序练习

          本文链接:https://www.haomeiwen.com/subject/fcwxdctx.html