惧留孙网

juliusun.com

惧留孙网 > 在线教程 > C语言练习题

循环结构之for

(14/50 节 页面下方包含QQ群、作者QQ等)

1、输出所有的“水仙花数”。所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。如153是一个水仙花数,153=1*1*1+5*5*5+3*3*3


#include<stdio.h>
int main()
{
    int i;

    for( i=100 ; i<1000 ; ++i )
    {
        int a,b,c;
        a = i/100;  //百位数
        b = (i/10)%10;  //十位数
        c = i % 10; //个位数

        if ((a*a*a + b*b*b + c*c*c) == i)
            printf("%d\t",i);
    }

    return 0;
}

2、一个数如果恰好等于它的因子之和,这个数就被称为“完数”。例如,6的因子为1,2,3,而6=1+2+3,因此6是“完数”。编写程序找出1000之内的所有完数,并按下面格式输出其因子:
  6 的因子有1,2,3


#include<stdio.h>
int main()
{
    int i;

    for( i=100 ; i<1000 ; ++i )
    {
        int sum=0,j;//sum为因子和

        for( j=1; j<i ; ++j)
        {
            if((i%j)==0)
                sum+=j;//是因子则加
        }

        if(sum==i)//是完数
        {
            int t;
            printf("%d的因子有",i);
            for( t=1 ; t<i ; ++t )
            {
                if( (i%t)==0 )
                {
                    if(t!=1)
                        printf(",");//1时不输出逗号

                    printf("%d",t);
                }
            }

            printf("\n");
        }
    }

    return 0;
}

3、输出一个菱形,菱形的连长来自键盘输入,如输入4,则输出以下图形:
菱形


/*
思路说明:字符的横纵距离和如果小于等于边长则在菱形内部或边上,输出星号,否则输出空格
*/
#include<stdio.h>
int main()
{
    int i,x,y;
    scanf("%d",&i);

    //外层执行循环一次,输出一行
    for( x=0 ; x<(2*i-1) ; ++x )
    {
        //内层执行循环一次,输出一个*或空格
        for( y=0 ; y< (2*i-1) ; ++y )
        {
            int a,b;//距离中心点的横纵距离
            a = x - (i-1);
            b = y - (i-1);

            if( a<0 )
                a=-1*a;
            if( b<0 )
                b = -1*b;

            if( (a+b) <= (i-1) )
                printf("*");
            else
                printf(" ");
        }

        printf("\n");
    }

    return 0;
}

作者:冥河 QQ:3304576112   交流QQ群:554701039 C语言讲课群 本教程内容由本站保留版权,请勿复制传播。

抖音
©2015-2024 惧留孙网 juliusun.com

京ICP备15039193号-1

首页 教程 下载 文章 聊天 我的