循环结构程序设计例题

【程序8】  

题目:输出9*9口诀。

长方形 带if

#include<stdio.h>

int main()

{

    int i,j,n;

    for(i=1;i<=9;i++)

    {

     for(j=1,n=0;j<=9;j++,n++)

     {if(n%9==0)

        printf("\n");

      printf("%d*%d=%d\t",i,j,i*j);

     }

    }

    return 0;

}

三角形 无if

int main()

{

    int i, j, n;

    for (i = 1; i <= 9; i++)

    {

        for (j = 1, n = 0; j <= i; j++, n++)

            printf("%d*%d=%d\t", i, j, i * j);

        printf("\n");

    }

    return 0;

}

==============================================================

【程序9】 

题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 

#include<stdio.h>

int main()

{

    int i, j, n = 1;

    printf("请输入一个正整数:");

    scanf("%d", &i);

    printf("%d=", i);

    for (j = 2; j < i; j++)

    {

        while (i % j == 0)

        {

             printf("%d", j);

             i /= j;

             if (i != 1)

                 printf("*");

        }

    }

    return 0;

}

==========================================================

【程序10】 

题目:输入两个正整数m和n,求其最大公约数和最小公倍数。

#include<stdio.h>

int main()

{

    int i, j, m, n, t;

    printf("请输入两个正整数:");

    scanf("%d%d", &m, &n);

    if (m < n)

    {

        t = m;

        m = n;

        n = t;

    }

    for (i = n; i >= 1;)

    {

        if (m % i == 0 && n % i == 0)

        {

            printf("%d与%d的最大公约数为%d\n", m, n, i);

            break;

        }

        else

            i--;

    }

    for (j = m; j <= m*n;)

    {

        if (j % m == 0 && j % n == 0)

        {

            printf("%d与%d的最小公倍数为%d", m, n, j);

            break;

        }

        else

            j++;

    }

    return 0;

}

==============================================================

【程序11

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

#include<stdio.h>

int main()

{

    int a = 0, b = 0, c = 0, d = 0;

    char f;

    printf("请输入一串字符:");

    while ((f = getchar()) != '\n')

    {

        if (f >= 'a' && f <= 'z' || f >= 'a' && f <= 'z')

            a++;

        else if (f >= '0' && f <= '9')

            b++;

        else if (f == ' ')

            c++;

        else

            d++;

    }

    printf("英文字母有%d个,数字有%d个,空格有%d个,其他字符有%d个", a, b, c, d);

    return 0;

}

==============================================================

【程序12

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

#include<stdio.h>

int main()

{

    int s, a, i, j, sum;

    printf("请输入一位数字:");

    scanf("%d", &a);

    printf("请输入有几位数相加:");

    scanf("%d", &j);

    printf("s=");

    for (s = 0, sum = 0, i = 1; i <= j; i++)

    {

        sum = a + sum * 10;

        s += sum;

    }

    printf("%d", s);

    return 0;

}

==============================================================

【程序13

题目:求1!+2!+……20!

#include<stdio.h>

int main()

{

 int sum=0,i=1,s=1;

 for(;i<=20;i++)

 {

  s=s*i;

  sum=sum+s;

 }

 printf("sum=%d",sum);

 return 0;

}

==============================================================

【程序14

题目:求

#include<stdio.h>

int main()

{

    int k,sum=0;

    for(k=1;k<=100;k++)

     sum+=k;

    for(k=1;k<=50;k++)

     sum+=k*k;

    for(k=1;k<=10;k++)

     sum+=1/k;

    printf("%d",sum);

    return 0;

}

==============================================================

【程序15】  

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

#include<stdio.h>

int main()

{

    int i;

    float k,s,x;

    for (s = 100, x = 200, i = 1; i <= 10; i++)

    {

        s += x / 2;

        x /= 2;

    }

    printf("总路程为:%7.2f\n", s);

    for (k = 100, i = 1; i <= 10; i++)

        k = k / 2;

    printf("第十次反弹%2.6f\n", k);

    return 0;

}==============================================================

【程序16】 

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

#include<stdio.h>

int main()

{

    int x,i;

    for(x=1,i=1; i<=10; i++)

        x=(x+1)*2;

    printf("第一天共摘了%d",x);

    printf("个桃子");

    return 0;

}

==============================================================

【程序17

题目:一根长度为338m的材料,需要截成长度为19m和23m的短料,求两种短料各截多少根时,剩余的材料最少?

#include<stdio.h>

int main()

{

    int i,j,c,x,y,min=338;//i j c为xymin最大最小值

    for(i=0; i<=338/19; i++)

    {

        for(j=0; j<=338/23; j++)

        {

            c=338-19*i-23*j;

            if(c<min&&c>0)

            {

                min=c;

                x=i;

                y=j;

            }

        }

    }

    printf("当19m和23m的短料各截%d,%d根时,剩余的材料最少,最少为%d",x,y,min);

    return 0;

}

==============================================================

【程序18

题目:一位百万富翁遇到一个陌生人,陌生人找他谈一个换钱计划。该计划如下:我每天给你十万元,而你第一天只需给我一分钱,第二天我仍给你十万元,你给我二分钱,第三天我仍给你十万元,你给我四分钱······你每天给我的钱是前一天的两倍,直到满一个月(30天)。百万富翁很高兴,欣然接受了这个契约。请编写一个程序计算并输出这一个月中陌生人给百万富翁多少钱,百万富翁给陌生人多少钱,输出赚钱的一方是谁?

#include<stdio.h>

int main()

{

    int i=3000000,k;

    float j=0.01;

    printf("陌生人给富翁%d元\n",i);

    for(k=1;k<=29;k++)

    j=j*2;

    printf("富翁给陌生人%7.2f元\n赚钱的一方是",j);

    if(i<j)

    printf("陌生人");

    else

    printf("富翁");

    return 0;

}

==============================================================

【程序19

题目:某次大奖赛,有7个评委对参赛者打分,编写程序:对一名参赛者,输入7个评给参赛者打出的分数,去掉一个最高分和一个最低分,输出参赛者的平均得分。

#include<stdio.h>

int main()

{

    int a,b,c,d,e,f,g,t,i;

    float average;

    printf("请输入七位评委的评分:");

    scanf("%d%d%d%d%d%d%d",&a,&b,&c,&d,&e,&f,&g);

    for(i=1;i<=1000;i++)

    {   if(a<b)

        {

            t=b;

            b=a;

            a=t;

        }

        if(b<c)

        {

            t=c;

            c=b;

            b=t;

        }

        if(c<d)

        {

            t=d;

            d=c;

            c=t;

        }

        if(d<e)

        {

            t=e;

            e=d;

            d=t;

        }

        if(e<f)

        {

            t=f;

            f=e;

            e=t;

        }

        if(f<g)

        {

            t=g;

            g=f;

            f=t;

        }

    }

    average=(b+c+d+e+f)/5.0;

    printf("该选手的平均数为%5.2f\n",average);

}

==============================================================

【程序20

题目:编写程序,在屏幕上输出下面的结果,输出数据的行数通过键盘输入,要求在5~20行之间。

#include<stdio.h>

int main()

{

    int n,m,i,j;  //n,i行m列,输出j

    printf("请在5到20之间输入一个数字作为总行数:");

    scanf("%d",&n);

    for(i=1; i<=n; i++)

    {

        for(m=0,j=3*i; m<=3; m++)

        {

            if(m%4==0)

                printf("\n");

            printf("%d\t",j);

            j+=2;

        }

    }

    return 0;

}

==============================================================

【程序21

题目:设公鸡每只5元,母鸡每只3元,小鸡1元3只,现用100元钱买100只鸡,编写一个程序,算出可以各买多少只鸡。

#include<stdio.h>

int main()

{

    int a,b,c;

    for(a=1; a<=20; a++)

    {

        for(b=1; b<=100/3; b++)

        {

            for(c=1; c<=100; c++)

            {

                if(a+b+c==100&&5*a+3*b+c/3==100)

                printf("公鸡有%d只,母鸡有%d只,小鸡有%d只\n",a,b,c);

            }

        }

    }

    return 0;

}

==============================================================

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值