慕课哈工大C语言程序设计精髓(第5周练兵区)

这篇博客涵盖了哈工大C语言课程的多个练习题目,包括判断整数位数、奖金计算、程序修改与改错、猴子吃桃问题以及密码输入检测等,旨在提升C语言的编程能力。
摘要由CSDN通过智能技术生成

1判断一个整型数据有几位v2.0(4分)

从键盘输入一个整型数据(int型),编写程序判断该整数共有几位,并输出包含各个数字的个数。例如,从键盘输入整数16644,该整数共有5位,其中有1个1,2个6,2个4。
程序运行结果示例1:
Please enter the number:
12226↙
12226: 5 bits
1: 1
2: 3
6: 1
程序运行结果示例2:
Please enter the number:
-12243↙
-12243: 5 bits
1: 1
2: 2
3: 1
4: 1
输入格式: “%d”
输出格式:
输入提示信息:“Please enter the number:\n”
判断该整数共有几位:"%d: %d bits\n"
包含数字0的个数:“0: %d\n”
包含数字1的个数:“1: %d\n”
包含数字2的个数:“2: %d\n”
包含数字3的个数:“3: %d\n”
包含数字4的个数:“4: %d\n”
包含数字5的个数:“5: %d\n”
包含数字6的个数:“6: %d\n”
包含数字7的个数:“7: %d\n”
包含数字8的个数:“8: %d\n”
包含数字9的个数:“9: %d\n”

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
    int i=0,x,xx,xxx,xxxx,xxxxx,x0=0,x1=0,x2=0,x3=0,x4=0,x5=0,x6=0,x7=0,x8=0,x9=0,bit=0;
    printf("Please enter the number:\n");
    scanf(" %d",&x);
    xxxxx=x;
    x=(int)fabs(x);
    xx=x;
    xxxx=x;
    do
    {
        x=x/10;
        bit++;
    }while(x>0);
    do
    {
        xxx=xx%10;
        switch(xxx)
        {
        case 1:x1++;
        break;
        case 2:x2++;
        break;
        case 3:x3++;
        break;
        case 4:x4++;
        break;
        case 5:x5++;
        break;
        case 6:x6++;
        break;
        case 7:x7++;
        break;
        case 8:x8++;
        break;
        case 9:x9++;
        break;
        case 0:x0++;
        break;
        }
        xx=(xx-xxx)/10;
        i++;
    }while(i<bit);
    printf("%d: %d bits\n",xxxxx,bit);
    if(x0>0)
        printf("0: %d\n",x0);
    if(x1>0)
        printf("1: %d\n",x1);
    if(x2>0)
        printf("2: %d\n",x2);
    if(x3>0)
        printf("3: %d\n",x3);
    if(x4>0)
        printf("4: %d\n",x4);
    if(x5>0)
        printf("5: %d\n",x5);
    if(x6>0)
        printf("6: %d\n",x6);
    if(x7>0)
        printf("7: %d\n",x7);
    if(x8>0)
        printf("8: %d\n",x8);
    if(x9>0)
        printf("9: %d\n",x9);
    return 0;
}

2奖金计算(6分)

企业发放的奖金根据利润提成。利润低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时,高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润i,求应发放奖金总数?
程序运行结果示例1:
789↙
bonus=78
程序运行结果示例2:
789516↙
bonus=36342
输入格式: “%ld”
输出格式:“bonus=%ld\n”

#include <stdio.h>
int main() {  
         long bonus,a;     
        scanf("%ld",&a);    
      if(a<=100000) {
        bonus=a*0.1;   
    }
     if(a>100000&&a<=200000) {
     bonus=100000*0.1+(a-100000)*0.075;    
     } 
      if(a>200000&&a<=400000) {
        bonus=100000*0.1+100000*0.075+(a-200000)*0.05;     
     }
     if(a>400000&&a<=600000) {
        bonus=100000*0.1+100000*0.075+200000*0.05+(a-400000)*0.03; 
    }
    if(a>600000&&a<=1000000) {
        bonus=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值