zoukankan      html  css  js  c++  java
  • C语言经典例题100(17~21)

    十七、输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

    #include<stdio.h>
    
    int main()
    {
        char mychar;
        int c_num,sp_num,num_num,oc_num,all_num;
        c_num=sp_num=num_num=oc_num=all_num=0;
        printf("请输入一串字符,以换行符结尾
    ");
        mychar=getchar();
        while(mychar!='
    ')
        {
            if(mychar>='0'&&mychar<='9')
                num_num++;
            else
            {
                if(((mychar>='A')&&(mychar<='Z'))||((mychar>='a')&&(mychar<='z')))
                    c_num++;
                else
                {
                    if(mychar==' ')
                        sp_num++;
                    else
                        oc_num++;
                }
            }
            all_num++;
            mychar=getchar();
        }         
        printf("总共有%d个字符
    ",all_num);
        printf("其中字母有%d个;数字有%d个;空格有%d个;其他字符有%d个。
    ",c_num,num_num,sp_num,oc_num);
    
        getch();
        return 0;
    }

    十八、求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。

     程序分析:

    第一次为a;第二次为aa;第三次为aaa...

    可推出,第(n+1)次比n次新增项设为(n+1)个a连续组成的数,设第n次新增数为M,运算结果为N,则第(n+1)次新增数为M*10+a;(n+1)次运算结果为N+M*10+a;

    当n=1时,结果为a;

    当n>1时,以第二次为基础,第二次新增数为aa,结果为(a+aa);

    长整型数据表示范围为4294967296,因此当次数输入超过10次或者:次数为10次且a>3时会发生溢出。

    #include<stdio.h>
    
    int main()
    {
        int a,n,i,M;
        long sum;
        printf("请输入一个个位数和运算的次数:
    ");
        scanf("%d%d",&a,&n);
        if((n>10)||((n==10)&&(a>3)))
        {    
            printf("error!
    ");
            getch();
            return 0;
        }
        if(n==1)
            sum=a;
        else
        {
            M=a*10+a;
            sum=a+M;
            for(i=1;i<(n-1);i++)
            {
                M=M*10+a;
                sum=sum+M;
            }
        }
        printf("结果为:%ld
    ",sum);
    
        getch();
        return 0;
    
    }

    十九、一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程找出1000以内的所有完数。

    #include<stdio.h>
    
    int main()
    {
        int n,i,sum;
        for(n=1;n<1001;n++)
        {
            sum=0;
            for(i=1;i<n;i++)
                if(n%i==0)
                    sum+=i;
            if(sum==n)
                printf("	%d",n);
        }
        getch();
        return 0;
    }
    
            

    二十、一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在10次落地时,共经过多少米?第10次反弹多高?

    #include<stdio.h>
    
    int main()
    {
        int i;
        float h0,s,hx;
        h0=100.0;
        hx=100.0;
        s=100.0;
        for(i=2;i<11;i++)
        {
            hx=hx/2.0;
            s+=hx*2;
        }
        printf("总共行程为%f米,最后一次高度为%f米。
    ",s,hx);
        getch();
        return 0;
    }

    二十一、猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。

    #include<stdio.h>
    
    int main()
    {
        int n,p=1;
        for(n=9;n>0;n--)
        {
            p=(p+1)*2;
        }
        printf("摘了%d个桃子.
    ",p);
        getch();
        return 0;
    }
  • 相关阅读:
    (纯代码)QQ登录界面:
    (纯代码)图片浏览器:
    (纯代码 )transform旋转:
    苹果API常用英语名词:
    纯代码创建Button控件:
    GCD
    UISegmentedControl 开发笔记
    UISwitch 开关控件 开发笔记
    Xcode6中怎么添加空工程模板
    HTTP Live Streaming直播(iOS直播)技术分析与实现
  • 原文地址:https://www.cnblogs.com/tsembrace/p/3250692.html
Copyright © 2011-2022 走看看