我的C语言算法练习:第6题 - 第10题

导读

接着我的C语言算法练习:第1题 - 第5题

第六题:

求a+aa+aaa+a..a的值,其中a是一个数字,几个数字相加由键盘控制。

程序:

#include
main()
{
    int unit, num;
    int total=0, add=0;
    
    printf("please input unit and number\n");
    
    scanf("%d %d", &unit, &num);
    
    printf("unit=%d, number=%d\n", unit, num);
    
    for(int i=1; i<=num; i++)
    { 
        add=add+unit;  //计算新数
        total=total+add;  //累加总数 
        unit=unit*10; 
        printf("%d\n", add);
    } 
    printf("a+aa+...=%d\n", total);
}

运行:

图片.png

第七题:

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

程序:

#include
main()
{
    float sn=100, hn=sn/2;
    int m;
    
    printf("请输入反弹次数:"); 
    scanf("%d", &m);
    
    for(int n=2; n<=m; n++)
    {
        sn=sn+2*hn;  //第n次落地时共经历的米数
        hn=hn/2;  //第n此反跳高度
        printf("the %-2d is %-9f meters\n", n, hn); 
    }   
    
    printf("\nthe total of road is %f\n", sn);
    
} 

运行:

图片.png

第八题:

求一个3X3矩阵对角线元素之和

程序:

#include
main()
{
    int a[3][3], sum1=0, sum2=0;
    int i, j, n=1;
    printf("please input nine number:\n");
    for(i=0; i<3; i++)
    {
        for(j=0; j<3; j++)
        {
            printf("第%d个数是:", n);
            scanf("%d", &a[i][j]);
            n=n+1;
        }
    }
    
    printf("\n");
     
    for(i=0; i<3; i++)
    {
        for(j=0; j<3; j++)
        {
            printf("%-3d", a[i][j]);
            // 输出矩阵 
        }
        printf("\n\n");
    }
    
    for(i=0; i<3; i++)
    {
        for(j=0; j<3; j++)
        {
            if(i+j==2)
            {
                sum1=sum1+a[i][j];
                // 撇对角线之和
            }     
        }
    }
    
    for(i=0; i<3; i++)
    {
        sum2=sum2+a[i][i];
        // 捺对角线之和
    }
    
    printf("撇对角线之和是:%d\n", sum1);
    printf("捺对角线之和是:%d\n", sum2);
}

运行:

图片.png

第九题:

给一个不多于五位的正整数,要求:1. 求它是几位数;2. 逆序打印出各位数字。

程序:

#include
main()
{
    long a, b, c, d, e, x;
    printf("\nplease input a number\n");
    scanf("%ld", &x);
    a=x/10000; //万位
    b=x%10000/1000; //千位
    c=x%1000/100; //百位
    d=x%100/10; //十位
    e=x%10; //个位
    if(a!=0)
    {
        printf("there are 5:\n %ld %ld %ld %ld %ld\n", e, d, c, b, a);
    }
    else if(b!=0)
    {
        printf("there are 4:\n %ld %ld %ld %ld\n", e, d, c, b);
    }
    else if(b!=0)
    {
        printf("there are 3:\n %ld %ld %ld\n", e, d, c);
    }
    else if(b!=0)
    {
        printf("there are 2:\n %ld %ld\n", e, d);
    }
    else if(b!=0)
    {
        printf("there are 1:\n %ld\n", e);
    }
}

运行:

图片.png

第十题:

输入一个整数,求出它的所有因子。

程序:

#include
main()
{
    int x, i;
    
    printf("\n请输入一个正整数\n"); 
    scanf("%d", &x);
    printf("\n所有因子:\n");
    for(i=1; i<=x; i++)
    {
        if(x%i==0)
        {
            printf("%3d", i); 
        }
    }
}

运行:

图片.png

to be continued...

你可能感兴趣的:(我的C语言算法练习:第6题 - 第10题)