C语言流程控制习题

输出钻石型算法

static void diamond()
{/*{{{*/
    int maxedge=0;
    printf("Please enter edge's number:\n");
    scanf("%d",&maxedge);//输入钻石型的最大宽度
    int i,j;
    for(i=0;i<maxedge;i++)
        ptstar(maxedge-i,i+1);
    for(j=0;j<maxedge-1;j++)
        ptstar(j+2,maxedge-1-j);
    return;
}/*}}}*/
/*
输出单排上的空格和星型符号,保持中间对齐
*/
static void ptstar(int space,int star)
{/*{{{*/
    int i,j;
    for(i=0;i<space;i++)
        printf(" ");
    for(j=0;j<star;j++)
        printf("* ");
    printf("\n");
}/*}}}*/

输出1000以内的质数(只能被1和自身整除的数)

static void prime()
{/*{{{*/
    int number;
    int divisor;
    printf("1\n");
    for(number = 2;number < 1000;number++)
    {
        for(divisor = 2;divisor < number;divisor++)
        {
            if(number % divisor == 0)//循环判断是否能被某个非1非自身的数整除
            break;
        }
        if(divisor == number)//除数等于自身判断为质数
        printf("%d\n",number);
        divisor = 2;
    }
    return;
}/*}}}*/

计算水仙花数(三位数中个十百位的三次方值之和等于自身的数,即自幂数)

static void narcissistic()
{/*{{{*/
    int hundred;
    int ten;
    int unit;
    int number;
    for(hundred = 1;hundred < 10;hundred++)
    {
        for(ten = 0;ten < 10;ten++)
        {
            for(unit = 0;unit < 10;unit++)
            {
                int number = hundred*100+ten*10+unit;
                if(number == (pow(hundred,3) + pow(ten,3) + pow(unit,3)))
                printf("%d\n",number);//pow(x,y)可以求x的y次方值
            }   
            unit=0;
        }
        ten=0;
    }
    return;
}/*}}}*/

百钱买百鸡,公鸡五钱,母鸡三钱,三鸡雏一钱,求三种鸡各多少?

static void buychk()
{/*{{{*/
    int male;
    int female;
    int young;
    for(male = 1 ;male < 20;male++)//从数量最少最贵的开始循环
    {
        for(female = 1;female < ((100-5*male)/3);female++)
        {
            young =3*(100-5*male-3*female);
            if((male+female+young) == 100)
            printf("male = %d female =%d young =%d\n",male,female,young);
        }
        female=0;
    }
    return;
}/*}}}*/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值