慕课哈工大c语言程序设计精髓练习题第五周

这篇博客包含了多个C语言编程练习题目,涉及数字位数判断、奖金计算、程序修改与错误修复等。用户需输入整型数据或特定条件,程序将执行相应计算或检测。例如,计算奖金、判断整数位数、检测输入数据中奇偶数的个数等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1

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

题目内容:

从键盘输入一个整型数据(int型),编写程序判断该整数共有几位,并输出包含各个数字的个数。例如,从键盘输入整数16644,该整数共有5位,其中有1个1,2个6,2个4。

#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,求应发放奖金总数?

思路

设利润profit,利用if和多个else if将profi划分成六档计算奖金数,profit用long int类型。

 

3

程序修改—1(4分)

题目内容:

修改下面这个程序使其快速计算1+2+3……+n的值,n从键盘输入。并按照下面给出的运行示例检查程序。

#include  <stdio.h>
  int main()
  { 
    int i, j, sum = 0, n=100; 
    for (i=1,j=n; i<=j; i++,j--)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值