精华内容
下载资源
问答
  • C语言判断一个整型数据有几位v2.0

    千次阅读 2019-03-08 15:40:44
    从键盘输入一个整型数据(int型),编写程序判断该整数共有几位,并输出包含各个数字的个数。例如,从键盘输入整数16644,该整数共有5位,其中1个1,2个6,2个4。 程序运行结果示例1: Please enter the number: 12226...

    题目内容:

    从键盘输入一个整型数据(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

    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
    int main()
    {
        int n,x,count=0,a[10],i;
    	printf("Please enter the number:\n");
        scanf("%d",&n);
        x=fabs(n);//为了下面的输出以及负数的出现而做出的绝对值赋值
        for(i=0;i<=9;i++) //初始化数组
    		a[i]=0;
        while(x!=0)//这个外循环是为了判断输入数据的位数
        {	
            for(i=0;i<=9;i++)//内层循环是为了计算每个位数的数出现的次数
            {
                if (x%10==i)
    				a[i]++;
            }
    		x/=10;
            count++;
        }
    	printf("%d: %d bits\n",n,count);
        for(i=0;i<=9;i++)//循环输出打印
        {	
            if (a[i] != 0)//筛选输出
    			printf("%d: %d\n",i,a[i]);
        }
        
    	system("pause");
    	return 0;
    }
    
    展开全文
  • 判断一个整型数据有几位 从键盘输入一个整型数据(int型),用switch语句和循环语句编写程序判断该整数共有几位,并输出包含各个数字的个数。例如,从键盘输入整数16644,该整数共有5位,其中有1个1,2个6,2个4。 程序...

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

    程序运行结果示例1:
    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 <math.h>
    int main ( )
    {
        printf("Please enter the number:\n");
        int num,d,j = 0,a[10]= {0},c,sum = 0;
        scanf("%d",&num);
        if(num < 0) c = fabs(num);
        else c = num;
        while(1)
        {
     	   d = c % 10;
            a[d]++;
            c /= 10;
            sum++;
            if (c == 0) break;
        }
        printf("%d: %d bits\n",num,sum);
        for (j = 0; j < 10; j++) {
            if(a[j] != 0)
                printf("%d: %d\n",j,a[j]);
        }
        
    }
    
    

    一 · 题目要求

    1 · 判断有几位
    2 · 求每个数字出现几次

    二 · 思路

    判断有几位其实可以通过每个数字出现几次求和来得到
    看每一位上出现的数字式几,可以通过之前求个位数上的方法 num % 10 = 个位;
    (循环体:)
    把每一位都变成个位就好了
    num / 10;num / 100;num /1000
    最后eg
    num / 10000000 = 0 ,就说明计数计完了,结束循环

    其实,根据自己的思路确定循环体,不一样的循环体,会有不一样的条件结束。

    展开全文
  • 判断一个整型数据有几位 从键盘输入一个整型数据(int型),编写程序判断该整数共有几位,并输出包含各个数字的个数。例如,从键盘输入整数16644,该整数共有5位,其中有1个1,2个6,2个4。 程序运行结果示例1: Please ...

    有一说一
    这题严重影响了我这个菜鸡周六以来的心情,
    间接影响了学习欲望 &(不存在的)学习效率。

    题目:
    判断一个整型数据有几位
    从键盘输入一个整型数据(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<math.h>
    int main()
    {
        int n,a,b,c,d,e,f,g,h,i,j,x=0,y=0;
        a=0;
        b=0;
        c=0;
        d=0;
        e=0;
        f=0;
        g=0;
        h=0;
        i=0;
        j=0;
        printf("Please enter the number:\n");
        scanf("%d",&n);
        x=n;
        do{
                n=fabs(n);
            switch(n%10)
            {
                case 0:a++;break;
                case 1:b++;break;
                case 2:c++;break;
                case 3:d++;break;
                case 4:e++;break;
                case 5:f++;break;
                case 6:g++;break;
                case 7:h++;break;
                case 8:i++;break;
                default :j++;
            }
            n=n/10;
        }while(n);
        y=a+b+c+d+e+f+g+h+i+j;
        printf("%d: %d bits\n",x,y);
        if(a){printf("0: %d\n",a);}
        if(b){printf("1: %d\n",b);}
        if(c){printf("2: %d\n",c);}
        if(d){printf("3: %d\n",d);}
        if(e){printf("4: %d\n",e);}
        if(f){printf("5: %d\n",f);}
        if(g){printf("6: %d\n",g);}
        if(h){printf("7: %d\n",h);}
        if(i){printf("8: %d\n",i);}
        if(j){printf("9: %d\n",j);}
        return 0;
    }
    

    2分的版本
    (eg.1234567890 用dev编译可以出正确结果,cb不行,会有2个8)
    (也不知道系统是用什么验证的_躺)
    一开始想着用位数做就用了log结果没想到比上面简单粗暴的那一版还磨人
    还要想log的范围啊各种,又分出来很多种讨论
    应该还是有问题没有找出来

    #include<stdio.h>
    #include<stdlib.h>
    #include<math.h>
    
    int main()
    {
        int n,m,a,b,c,d,e,f,g,h,i,j,k,x,y;
        a=0;
        b=0;
        c=0;
        d=0;
        e=0;
        f=0;
        g=0;
        h=0;
        i=0;
        j=0;
        printf("Please enter the number:\n");
        scanf("%d",&n);
        x=n;
        y=x%10;
        if (n!=0)
        {
        	n=fabs(n);
        m=log10(n);
        printf("%d: %d bits\n",n,m+1);
        if (m!=0)
        {
            do
        {
          k=n/pow(10,m);
          switch(k)
          {
                case 0:a++;
    			break;
    			case 1:b++;
                break;
                case 2:c++;
                break;
                case 3:d++;
                break;
                case 4:e++;
                break;
                case 5:f++;
                break;
                case 6:g++;
                break;
                case 7:h++;
                break;
                case 8:i++;
                break;
                case 9:j++;
                break;
          }
        n=n-k*pow(10,m);
        m--;
       }while (m>0);
              switch(y)
                {
                case 0:a++;
    			break;
    			case 1:b++;
                break;
                case 2:c++;
                break;
                case 3:d++;
                break;
                case 4:e++;
                break;
                case 5:f++;
                break;
                case 6:g++;
                break;
                case 7:h++;
                break;
                case 8:i++;
                break;
                case 9:j++;
                break;
                }
        }
        else if (m==0)
        {
            switch(x)
                {
                case 0:a++;
    			break;
    			case 1:b++;
                break;
                case 2:c++;
                break;
                case 3:d++;
                break;
                case 4:e++;
                break;
                case 5:f++;
                break;
                case 6:g++;
                break;
                case 7:h++;
                break;
                case 8:i++;
                break;
                case 9:j++;
                break;
                }
        }
        if (a!=0)printf("0: %d\n",a);
        if (b!=0)printf("1: %d\n",b);
        if (c!=0)printf("2: %d\n",c);
        if (d!=0)printf("3: %d\n",d);
        if (e!=0)printf("4: %d\n",e);
        if (f!=0)printf("5: %d\n",f);
        if (g!=0)printf("6: %d\n",g);
        if (h!=0)printf("7: %d\n",h);
        if (i!=0)printf("8: %d\n",i);
        if (j!=0)printf("9: %d\n",j);
    	}
        else
        {
        	printf("%d: %d bits\n",n,n);
        	printf("0: %d\n",n);
    
    	}
        return 0;
    }
    

    你记得过段时间回来看看这个孩子。

    展开全文
  • 1.判断一个整型数据有几位v2.0(4分) 2.奖金计算(6分) 4.程序修改—2(4分) 5.程序改错-1(4分) 6.程序改错-2(5分) 7.程序改错-3(4分) 8.猴子吃桃程序_扩展1(4分) 9.猴子吃桃程序_扩展2(4分) ...

     写在前边的话:写作不易,有帮助到你的话麻烦点赞收藏呦。感激不尽!如有错误也请留言指正

    点我查看MOOC苏小红C语言程序设计精髓所有编程题

    目录

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

    2.奖金计算(6分)

    4.程序修改—2(4分)

    5.程序改错-1(4分)

    6.程序改错-2(5分)

    7.程序改错-3(4分)

    8.猴子吃桃程序_扩展1(4分)

    9.猴子吃桃程序_扩展2(4分)

    10.6位密码输入检测(4分)

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

    12.检测输入数据中奇数和偶数的个数(4分)

    13.计算球的反弹高度(4分)


    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"

    为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。

    时间限制:500ms内存限制:32000kb

    C

    int main(){
        int n,m,count = 0,i;
        int a[10]={0};
        printf("Please enter the number:\n");
        scanf("%d",&n);
        m = n>0?n:-n;
        while(m!=0)
        {
            a[m%10]++;
            m = m/10;
            count++;
        }
        printf("%d: %d bits\n",n,count);
        for(i = 0;i <10;i++)
        {
            if(a[i]!=0)printf("%d: %d\n",i,a[i]);
        }
       return 0;
    }
    用例测试结果 运行时间 占用内存 提示 得分
    用例1通过 2ms 256kb   2
    用例2通过 2ms 256kb   2

    提交答案

    本次得分/总分:4.00/4.00分


    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"

    为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。

    时间限制:500ms内存限制:31kb

    C

    // 这个题不难,太磨叽了,就这样吧
    #include <stdio.h>
    int  main()
    {
    
            int  a = 0;  //定义利润
            int k = 0;  //定义奖金
            scanf("%d", &a);
            if (a > 0 && a <= 100000)
            {
                k = a * 0.1;
            }
            else if (a > 100000 && a <= 200000)
            {
                k = 100000 * 0.1 + (a - 100000) * 0.075;
            }
            else if (a > 200000 && a <= 400000)
            {
                k = 100000 * 0.1 + 100000 * 0.075 + (a - 200000) * 0.05;
            }
            else if (a > 400000 && a <= 600000)
            {
                k = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + (a - 400000) * 0.03;
            }
            else if (a > 600000 && a <= 1000000)
            {
                k = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + (a - 600000) * 0.015;
            }
            else if (a > 1000000)
            {
                k = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + 400000 * 0.015 + (a - 1000000) * 0.001;
            }
            printf("bonus=%ld\n", k);
    
    }
    用例测试结果 运行时间 占用内存 提示 得分
    用例1通过 2ms 256kb   1
    用例2通过 2ms 256kb   1
    用例3未通过 0ms 0kb

    结果错误

    0
    用例4通过 2ms 256kb   1
    用例5通过 2ms 256kb   1
    用例6通过 1ms 256kb   1

    提交答案

    本次得分/总分:5.00/6.00分


    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--) {
            sum = sum + i + j;
        }
        printf("sum = %d", sum);
        return 0;
    }

     

    程序运行结果示例1:

    5↙

    sum = 15

     

    程序运行结果示例2:

    6↙

    sum = 21

     

    输入格式: "%d"

    输出格式: "sum = %d"  (注意:等号两侧各有一个空格)

    为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。

    时间限制:500ms内存限制:32000kb

    C

    #include  <stdio.h>
    
    int main() {
        int i, j, sum = 0, n = 100;
        scanf("%d", &n);
        for (i = 1, j = n; i <= j; i++, j--) {
            sum = sum + i + j;
        }
        // 当n为奇数的时候,中位数加了两次,因为此时i==j,所以需要减去一个中位数
        if (n & 1) {
            sum -= (n / 2 + 1);
        }
        printf("sum = %d", sum);
        return 0;
    }
    用例测试结果 运行时间 占用内存 提示 得分
    用例1通过 14ms 256kb   2
    用例2通过 1ms 256kb   2

    提交答案

    本次得分/总分:4.00/4.00分


    4.程序修改—2(4分)

    题目内容:

    修改下面这个用do-while语句实现的程序,改用while语句实现,并对比其优缺点。

    #include  <stdio.h>
    
    int main() {
        int sum = 0, m;
        do {
            printf("Input m:\n");
            scanf("%d", &m);
            sum = sum + m;
            printf("sum = %d\n", sum);
        } while (m != 0);
        return 0;
    }

    程序运行结果示例:

    Input m:

    1↙

    sum = 1

    Input m:

    2↙

    sum = 3

    Input m:

    3↙

    sum = 6

    Input m:

    4↙

    sum = 10

    Input m:

    0↙

     

    输入格式:"%d"

    输出格式:

    输入提示: "Input m:\n"

    输出累加和: "sum = %d\n"(注意:等号两侧各有一个空格)

    为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。

     

    时间限制:500ms内存限制:32000kb

    C

    #include  <stdio.h>
    
    int main() {
        int sum = 0, m;
        printf("Input m:\n");
        scanf("%d", &m);
        sum = sum + m;
        while (m) {
            printf("sum = %d\n", sum);
            printf("Input m:\n");
            scanf("%d", &m);
            sum = sum + m;
        }
        return 0;
    }
    用例测试结果 运行时间 占用内存 提示 得分
    用例1通过 2ms 256kb   2
    用例2通过 1ms 256kb   2

    提交答案

    本次得分/总分:4.00/4.00分


    5.程序改错-1(4分)

    题目内容:

    我国古代的《张丘建算经》中有这样一道著名的百鸡问题:“鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡,问鸡翁、母、雏各几何?”其意为:公鸡每只5元,母鸡每只3元,小鸡3只1元。用100元买100只鸡,问公鸡、母鸡和小鸡各能买多少只?目前程序运行结果有误,请问为什么会比正确答案多出三个解?不仅要找出错误和修正错误,还要求利用以前学过的知识分析错误的原因。

    #include <stdio.h>
    
    int main() {
        int x, y, z;
        for (x = 0; x <= 20; x++) {
            for (y = 0; y <= 33; y++) {
                z = 100 - x - y;
                if (5 * x + 3 * y + z / 3 == 100) {
                    printf("x=%d, y=%d, z=%d\n", x, y, z);
                }
            }
        }
        return 0;
    }

     

    程序目前的运行结果:

     

    x=0, y=25, z=75

    x=3, y=20, z=77

    x=4, y=18, z=78

    x=7, y=13, z=80

    x=8, y=11, z=81

    x=11, y=6, z=83

    x=12, y=4, z=84


    程序正确的运行结果:

    x=0, y=25, z=75

    x=4, y=18, z=78

    x=8, y=11, z=81

    x=12, y=4, z=84

     

    输入格式:

    输出格式:

    "x=%d, y=%d, z=%d\n

    为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。

    时间限制:500ms内存限制:32000kb

    C

    #include <stdio.h>
    
    int main() {
        int x, y, z;
        for (x = 0; x <= 20; x++) {
            for (y = 0; y <= 33; y++) {
                z = 100 - x - y;
                if (5 * x + 3 * y + z / 3.0 == 100) {
                    printf("x=%d, y=%d, z=%d\n", x, y, z);
                }
            }
        }
        return 0;
    }
    用例测试结果 运行时间 占用内存 提示 得分
    用例1通过 21ms 256kb   4

    提交答案

    本次得分/总分:4.00/4.00分


    6.程序改错-2(5分)

    题目内容:

    从键盘任意输入一个正整数,编程判断它是否是素数,若是素数,输出“Yes!”,否则输出“No!”。已知负数、0和1都不是素数。请找出下面程序的错误并改正之,同时按照给出的运行示例检查修改后的程序。

    #include <stdio.h>
    #include <math.h>
    
    int main() {
        int n, i;
        printf("Input n:\n");
        scanf("%d", &n);
        for (i = 2; i <= sqrt(n); i++) {
            if (n % i = 0) {
                printf("No!\n");
            }
        }
        printf("Yes!\n");
        return 0;
    }

    程序的运行结果示例1:

    Input n:

    -3↙

    No!

     

    程序的运行结果示例2:

    Input n:

    0↙

    No!

     

    程序的运行结果示例3:

    Input n:

    1↙

    No!

     

    程序的运行结果示例4:

    Input n:

    6↙

    No!

     

    程序的运行结果示例5:

    Input n:

    7↙

    Yes!

     

    输入格式: "%d"

    输出格式:

    输入提示信息: "Input n:\n"

    是素数: "Yes!\n"

    不是素数: "No!\n"

    为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。

    时间限制:500ms内存限制:32000kb

    C

    #include <stdio.h>
    #include <math.h>
    
    int main() {
        int n, i;
        printf("Input n:\n");
        scanf("%d", &n);
        if(n <=0 || n == 1) {
            printf("No!\n");
            return 0;
        }
        for (i = 2; i <= sqrt(n); i++) {
            if (n % i == 0) {
                printf("No!\n");
                return 0;
            }
        }
        printf("Yes!\n");
        return 0;
    }
    用例测试结果 运行时间 占用内存 提示 得分
    用例1通过 18ms 128kb   1
    用例2通过 2ms 256kb   1
    用例3通过 2ms 256kb   1
    用例4通过 2ms 256kb   1
    用例5通过 2ms 256kb   1

    提交答案

    本次得分/总分:5.00/5.00分


    7.程序改错-3(4分)

    题目内容:

    从键盘任意输入两个符号各异的整数,直到输入的两个整数满足要求为止,然后打印这两个数。请通过测试找出下面这个程序存在的问题(不止一个问题哦),并改正。同时用下面给出的运行结果示例检查修改后的程序。

    #include <stdio.h>
    
    int main() {
        int x1, x2;
        do {
            printf("Input x1, x2:");
            scanf("%d,%d", &x1, &x2);
        } while (x1 * x2 > 0);
        printf("x1=%d,x2=%d\n", x1, x2);
        return 0;
    }

     

    程序正确的运行结果示例:

    Input x1, x2:

    a,s↙

    Input x1, x2:

    a,1↙

    Input x1, x2:

    2,s↙

    Input x1, x2:

    1,2↙

    Input x1, x2:

    -1,-2↙

    Input x1, x2:

    0,3↙

     

    Input x1, x2:

    1.2,3.4↙

    Input x1, x2:

    1.2,5↙

    Input x1, x2:

    -1,3↙

    x1=-1,x2=3

    输入格式: "%d,%d"

    输出格式:

    输入提示信息:"Input x1, x2:\n"

    输出: "x1=%d,x2=%d\n"

    为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。

    时间限制:500ms内存限制:32000kb

    C

    #include <stdio.h>
    
    int main() {
        int x1, x2, k;
        int flag = 0;
        do {
            while (flag && getchar() != '\n');
            flag = 1;
            printf("Input x1, x2:\n");
            k = scanf("%d,%d", &x1, &x2);
            
        } while ((x1 * x2 >= 0) || k!=2);
        printf("x1=%d,x2=%d\n", x1, x2);
        return 0;
    }
    用例测试结果 运行时间 占用内存 提示 得分
    用例1通过 2ms 256kb   2
    用例2通过 2ms 256kb   2

    提交答案

    本次得分/总分:4.00/4.00分


    8.猴子吃桃程序_扩展1(4分)

    题目内容:

    猴子第一天摘了若干个桃子,吃了一半,不过瘾,又多吃了1个。第二天早上将剩余的桃子又吃掉一半,并且又多吃了1个。此后每天都是吃掉前一天剩下的一半零一个。到第n天再想吃时,发现只剩下1个桃子,问第一天它摘了多少桃子?为了加强交互性,由用户输入不同的天数n进行递推,即假设第n天的桃子数为1。

     

    程序的运行结果示例1:

    Input days:

    5↙

    x=46

     

    程序的运行结果示例2:

    Input days:

    10↙

    x=1534

     

    输入格式: "%d"

    输出格式:

    输入提示信息:"Input days:\n"

    输出:"x=%d\n"

    为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。

    时间限制:500ms内存限制:32000kb

    C

    #include <stdio.h>
    
    int main() {
        int n, x = 1;
        printf("Input days:\n");
        scanf("%d", &n);
        for (int i = 1; i < n; i++) {
            x = (x +1)*2;
        }
        printf("x=%d\n", x);
        return 0;
    }
    用例测试结果 运行时间 占用内存 提示 得分
    用例1通过 2ms 256kb   2
    用例2通过 2ms 128kb   2

    提交答案

    本次得分/总分:4.00/4.00分


    9.猴子吃桃程序_扩展2(4分)

    题目内容:

    猴子第一天摘了若干个桃子,吃了一半,不过瘾,又多吃了1个。第二天早上将剩余的桃子又吃掉一半,并且又多吃了1个。此后每天都是吃掉前一天剩下的一半零一个。到第n天再想吃时,发现只剩下1个桃子,问第一天它摘了多少桃子?为了加强交互性,由用户输入不同的天数n进行递推,即假设第n天的桃子数为1。同时还要增加对用户输入数据的合法性验证(如:不允许输入的天数是0和负数)

     

    程序运行结果示例:

    Input days:

    0↙

    Input days:

    -5↙

    Input days:

    a↙

    Input days:

    3↙

    x=10

     

    输入格式: "%d"

    输出格式:

    输入提示信息:"Input days:\n"

    输出:"x=%d\n"

    为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。

    时间限制:500ms内存限制:32000kb

    C

    #include <stdio.h>
    
    int main() {
        int n, x = 1, k;
        int flag = 0;
        do {
    // 这行代码当做MOOC输入合法性判断的模板吧,这个是摸索出来的
            while (flag && getchar()!='\n');
            flag = 1;
            printf("Input days:\n");
            k = scanf("%d", &n);
        }while(n<=0 || k != 1);
    
        for (int i = 1; i < n; i++) {
            x = (x +1)*2;
        }
        printf("x=%d\n", x);
        return 0;
    }
    用例测试结果 运行时间 占用内存 提示 得分
    用例1通过 2ms 256kb   2
    用例2通过 1ms 256kb   2

    提交答案

    本次得分/总分:4.00/4.00分


    10.6位密码输入检测(4分)

    题目内容:

    从键盘输入6位数字0~9组成的密码。用户每输入一个密码并按回车键后,程序给出判断:如果是数字,则原样输出该数字,并提示用户目前已经输入了几位密码,同时继续输入下一位密码;否则,程序提示"error",并让用户继续输入下一位密码。直到用户输入的密码全部是数字为止。

    程序的运行结果示例:

    Input your password:

    1↙

    1, you have enter 1-bits number

    6↙

    6, you have enter 2-bits number

    a↙

    error

    d↙

    error

    4↙

    4, you have enter 3-bits number

    6↙

    6, you have enter 4-bits number

    8↙

    8, you have enter 5-bits number

    2↙

    2, you have enter 6-bits number

     

    输入提示信息:"Input your password:\n"

    输入格式: "%c"

    输出格式:

    如果输入的是数字,输出格式为:"%c, you have enter %d-bits number\n"

    如果输入的不是数字,输出提示信息:"error\n"

    为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。

     

    时间限制:500ms内存限制:32000kb

    C

    #include <stdio.h>
    
    int main() {
        printf("Input your password:\n");
        for (int i = 1; i <= 6;) {
            char ch;
            scanf("%c", &ch);
            getchar();
            if (ch < '0' || ch > '9') {
                printf("error\n");
            } else {
                printf("%c, you have enter %d-bits number\n", ch, i);
                i++;
            }
        }
        return 0;
    }
    用例测试结果 运行时间 占用内存 提示 得分
    用例1通过 1ms 256kb   2
    用例2通过 1ms 256kb   1
    用例3通过 2ms 256kb   1

    提交答案

    本次得分/总分:4.00/4.00分


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

    题目内容:

    从键盘输入一个整型数据(int型),编写程序判断该整数共有几位。例如,从键盘输入整数16644,该整数共有5位。

     

    程序运行结果示例1:

    Please enter the number:

    21125↙

    21125: 5 bits

     

    程序运行结果示例2:

     

    Please enter the number:

    -12234↙

    -12234: 5 bits

     

    输入提示信息:"Please enter the number:\n"

    输入格式: "%d"

    输出格式:"%d: %d bits\n"

    为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。

    时间限制:500ms内存限制:32000kb

    C

    #include <stdio.h>
    
    int main() {
        printf("Please enter the number:\n");
        int n, m;
        scanf("%d", &n);
        int count = 0;
        m = n;
        while (n) {
            n /= 10;
            count++;
        }
        printf("%d: %d bits\n", m, count);
    
        return 0;
    }
    用例测试结果 运行时间 占用内存 提示 得分
    用例1通过 1ms 256kb   2
    用例2通过 2ms 256kb   1
    用例3通过 2ms 256kb   1

    提交答案

    本次得分/总分:4.00/4.00分


    12.检测输入数据中奇数和偶数的个数(4分)

    题目内容:

    从键盘输入一系列正整数,输入-1表示输入结束(-1本身不是输入的数据)。编写程序判断输入数据中奇数偶数个数。如果用户输入的第一个数据就是-1,则程序输出"over!"。否则。用户每输入一个数据,输出该数据是奇数还是偶数,直到用户输入-1为止,分别统计用户输入数据中奇数和偶数的个数。

     

    程序运行结果示例1:

    Please enter the number:

    1↙

    1:odd

    5↙

    5:odd

    8↙

    8:even

    9↙

    9:odd

    12↙

    12:even

    17↙

    17:odd

    -1↙

    The total number of odd is 4

    The total number of even is 2

     

    程序运行结果示例2:

     

    Please enter the number:

    -1↙

    over!

    The total number of odd is 0

    The total number of even is 0

     

    输入提示信息:"Please enter the number:\n"

    输入格式: "%d"

    输出格式:

    用户输入的第一个数据就是-1,输出格式:"over!\n"

    奇数的输出格式:"%d:odd\n"

    偶数的输出格式:"%d:even\n"

    输入数据中奇数的个数统计:"The total number of odd is %d\n"

    输入数据中偶数的个数统计:"The total number of even is %d\n"

    为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。

    时间限制:500ms内存限制:32000kb

    C

    #include <stdio.h>
    
    int main() {
        // 奇数,偶数的个数
        int odd = 0, even = 0;
        int n;
    
        printf("Please enter the number:\n");
        while (1) {
            scanf("%d", &n);
            if (n == -1) {
                break;
            }
            if (n & 1) {
                odd++;
                printf("%d:odd\n", n);
            } else {
                even++;
                printf("%d:even\n", n);
            }
        }
        if (even + odd == 0) {
            printf("over!\n");
        }
        printf("The total number of odd is %d\n", odd);
        printf("The total number of even is %d\n", even);
        
        return 0;
    }
    用例测试结果 运行时间 占用内存 提示 得分
    用例1通过 2ms 256kb   2
    用例2通过 2ms 256kb   2

    提交答案

    本次得分/总分:4.00/4.00分


    13.计算球的反弹高度(4分)

    题目内容:

    一个球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下并反弹......,求它在第5次10次落地时,分别共经过了多少米第5次第10次反弹分别是多高?要求计算结果保留到小数点后3位。用户从键盘输入想要计算的第n次(n<=15)。程序中所有浮点数的数据类型均为float。

     

    程序运行结果示例1:

    Input:

    5↙

    5 times:

    287.500

    3.125


    程序运行结果示例2:

     

    Input:

    10↙

    10 times:

    299.609

    0.098

     

    输入提示信息:"Input:\n"

    输入格式: "%d"

    输出格式:

    反弹次数:"%d times:\n"

    第n次反弹共经过多少米:"%.3f\n"

    第n次的反弹高度:"%.3f\n"

    为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。

    时间限制:500ms内存限制:32000kb

    C

    #include <stdio.h>
    #include "math.h"
    int main() {
        int n;
        printf("Input:\n");
        scanf("%d", &n);
        printf("%d times:\n", n);
        // 等比数列求和
        printf("%.3f\n", 200 * (1- pow(0.5, n-1)) + 100);
        printf("%.3f\n", 50 * pow(0.5, n-1));
        return 0;
    }
    用例测试结果 运行时间 占用内存 提示 得分
    用例1通过 1ms 256kb   2
    用例2通过 2ms 256kb   2

    提交答案

    本次得分/总分:4.00/4.00分

    展开全文
  • 1 判断一个整型数据有几位v2.04分 题目内容 从键盘输入一个整型数据(int型)编写程序判断该整数共有几位并输出包含各个数字的个数例如从键盘输入整数16644,该整数共有5位其中有1个1,2个6,2个4 程序运行结果示例1 ...
  • 1.判断一个整型数据有几位v2.0(4分) 题目内容: 从键盘输入一个整型数据(int型),编写程序判断该整数共有几位,并输出包含各个数字的个数。例如,从键盘输入整数16644,该整数共有5位,其中有1个1,2个6,2个4。 程序...
  • 判断一个整型数据有几位v2.0(4分) 题目内容: 从键盘输入一个整型数据(int型),编写程序判断该整数共有几位,并输出包含各个数字的个数。例如,从键盘输入整数16644,该整数共有5位,其中有1个1,2个6,2个4。 程序...
  • 1 判断一个整型数据有几位v2.0(4分) 题目内容: 从键盘输入一个整型数据(int型),编写程序判断该整数共有几位,并输出包含各个数字的个数。例如,从键盘输入整数16644,该整数共有5位,其中有1个1,2个6,2个4。 ...
  • 1判断一个整型数据有几位v2.0(4分) 从键盘输入一个整型数据(int型),编写程序判断该整数共有几位,并输出包含各个数字的个数。例如,从键盘输入整数16644,该整数共有5位,其中有1个1,2个6,2个4。 程序运行结果...
  • 1判断一个整型数据有几位v2.0(4分) 从键盘输入一个整型数据(int型),编写程序判断该整数共有几位,并输出包含各个数字的个数。例如,从键盘输入整数16644,该整数共有5位,其中有1个1,2个6,2个4。 程序运行结果示例...
  • 1判断一个整型数据有几位v2.0(4分) 题目内容: 从键盘输入一个整型数据(int型),编写程序判断该整数共有几位,并输出包含各个数字的个数。例如,从键盘输入整数16644,该整数共有5位,其中有1个1,2个6,2个4。 程序...
  • 1、判断一个整型数据有几位v2.0(4分) 题目内容: 从键盘输入一个整型数据(int型),编写程序判断该整数共有几位,并输出包含各个数字的个数。例如,从键盘输入整数16644,该整数共有5位,其中有1个1,2个6,2个4。 ...
  • 判断一个整型数据有几位v2.0(4分) 题目内容: 从键盘输入一个整型数据(int型),编写程序判断该整数共有几位,并输出包含各个数字的个数。例如,从键盘输入整数16644,该整数共有5位,其中有1个1,2个6,2个4。 #...
  • c语言第五周练兵区

    2020-07-23 12:54:48
    1 判断一个整型数据有几位v2.0(4分) 题目内容:从键盘输入一个整型数据(int型),编写程序判断该整数共有几位,并输出包含各个数字的个数。例如,从键盘输入整数16644,该整数共有5位,其中有1个1,2个6,2个4。 程序...
  • 1判断一个整型数据有几位v2.0(4分) 题目内容: 从键盘输入一个整型数据(int型),编写程序判断该整数共有几位,并输出包含各个数字的个数。例如,从键盘输入整数16644,该整数共有5位,其中有1个1,2个6,2个4。 程序...
  • 判断一个整型数据有几位 #include<stdio.h> int main() { int x,n,c; printf("Please enter the number:\n"); scanf("%d",&x); for(n=0,c=x;c!=0;n++) { c/=10; } printf("%d: %d bits\...
  • 数据结构 1800题》

    热门讨论 2012-12-27 16:52:03
    2. 数据元素之间的关系在计算机中有几种表示方法?各有什么特点?【燕山大学1999 二、2(4分)】 3. 数据类型和抽象数据类型是如何定义的。二者有何相同和不同之处,抽象数据类型的主要特点是什么? 使用抽象数据...
  • 其它数据元素均唯一的“后继”</li><li>除第一个元素之外,其它数据元素均唯一的“前驱”</li></ul> 按照百度百科的定义,我们知道符合条件的数据结构就栈、队列和其它。 <p><strong>2.非线性结构...
  • 你必须知道的495C语言问题

    千次下载 热门讨论 2015-05-08 11:09:25
    6.22 如何在一个文件中判断声明为extern的数组的大小(例如,数组定义和大小在另一个文件中)?sizeof操作符似乎不行。 6.23 sizeof返回的大小是以字节计算的,怎样才能判断数组中多少个元素呢? 第7章 内存...
  • *3.4 这样一个巧妙的表达式:a^= b^= a^= b; 它不需要临时变量就可以交换a和b的值。 34 3.5 可否用显式括号来强制执行我所需要的计算顺序并控制相关的副作用?就算括号不行,操作符优先级是否能够控制计算顺序...
  • java联系题

    2013-09-18 20:22:53
    2. 设计一个Java程序,设有一个给定的int类型数组并一批数据,现让你用二种以上的方法对其进行升或降序排列。 3. 写一个简单程序,判断输入的一串字符串是否为身份证号码,注意身份证判别的个条件。 4. 设计一个...
  • 《你必须知道的495C语言问题》

    热门讨论 2010-03-20 16:41:18
    *3.4 这样一个巧妙的表达式:a^= b^= a^= b; 它不需要临时变量就可以交换a和b的值。 34 3.5 可否用显式括号来强制执行我所需要的计算顺序并控制相关的副作用?就算括号不行,操作符优先级是否能够控制计算顺序...
  • 这里用了一个巧思:为了避免出现年月日各种逻辑判断混杂,可以将年月日化成一个8整数,即可以直接比较大小。 2、输出有一个坑,当没有有效生日时候,输出为0,这时候是不用输出年老人、年轻人的名字的。 3、运行...
  • 答:前一个循环一遍再判断,后一个判断以后再循环 6、请写出下列代码的输出内容 #include main() { int a,b,c,d; a=10; b=a++; c=++a; d=10*a++; printf("b,c,d:%d,%d,%d",b,c,d); return 0; } 答:10,12...
  • 第2章 做一个最简短的c++程序 4 2.1 简单的屏幕输出小程序 4 2.2 输出语句的使用 5 2.3 std::介绍 6 2.4 iostream与iostream.h的区别 7 2.5 重名问题 8 2.6 注释 9 第3章 初步了解函数 11 3.1 一个简单的...

空空如也

空空如也

1 2 3 4
收藏数 74
精华内容 29
关键字:

判断一个整型数据有几位