C语言 第六章 多重循环练习

一、循环输入
#include "stdio.h"
void main()
{
    char c;
    do
    {
        printf("我告诉你1+1=2\n");
        printf("你相信吗?(y/n)");
        c=getchar();
        fflush(stdin);
    }while(c=='n');
}

二、输入行与列显示矩形

#include "stdio.h"
void main()
{
   int row,col,i,j;
   char c;
   
   do{
       printf("行:");
       scanf("%d",&row);
       fflush(stdin);
       
       printf("列:");
       scanf("%d",&col);
       fflush(stdin);
       
       for(i=1;i<=row;i++)
       {
               for(j=1;j<=col;j++)
               {
                   printf("*");
               }
               printf("\n");
       }
        printf("是否继续?(y/n)");
        c=getchar();
        fflush(stdin);
   }while(c=='y');
    
}

三、1-10之间的阶乘

1!+2!+3!

1+(1*2)+(1*2*3)

#include "stdio.h"
void main()
{
    int i,j,n,cnt,sum=0;
   
    for(j=1;j<=10;j++)
    {
        cnt=1;
        for(i=1;i<=j;i++)
        {
            cnt=cnt*i;
            printf("%d x ",i);
        }
        sum+=cnt;
        printf("=%d\n",cnt);
    }
    printf("%d",sum);
}

四、买苹果

#include "stdio.h"
void main()
{
    //总苹果数x0.8/天数=每天花的钱
    int n,cnt=0,day=0; //表示当天买的苹果数
    for(n=2;n<=100;n=n*2,day++)
    {
        cnt=cnt+n;  //累加每天的苹果数
        printf("%d %d\n",n,cnt);
    }
    
    printf("%.2f",(cnt*0.8)/day);
}

五、课后练习吃饭吃菜

#include "stdio.h"
void main()
{
    int i,j;
    for(i=1;i<=10;i++)
    {
        printf("\n吃一口饭\n");
        for(j=1;j<=3;j++)
        {
            printf("吃菜\t");
        }
    }
}

六、分解质因数

/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
    int i,n;
    scanf("%d",&n);  //输入
    for(i=2;i<=n;i++)  //假定i-n之间的所有数都是n的质因数
    {
        if(n%i==0)  //是否整除
        {
            printf("%d \t",i);
            n=n/i;
            i--;  //为了避免跳过多个相同因子将i--
        }
        //n=28 14 7 1
        //i=2 1 2 1 2 3 4  5 6 7 6 7 8
    }
    //2 2 7
}

七、101-200间的素数,P136

/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
    //判断一个数是否是素数
    int n=101,leap,i,cnt=0;
    
    while(n<=200)  //外重循环用于准备数
    {
        leap=1;  //假定n就是素数
        for(i=2;i<n/2;i++)
        {
            if(n%i==0)  //只要在2-n之间有一个数被整除
            {
                leap=0;  //标记n不是素数
                break;  //结束内重循环
            }
        }
        
        if(leap)
        {
            cnt++;
            printf("%d  ",n);
            if(cnt%10==0) printf("\n");   //当素数个数是10的倍数时换行 
        }
        n++;
    }
    
    printf("\n101-200之间共有%d个素数",cnt);
    
    
}

八、乒乓球比赛题 P140

#include "stdio.h"
void main()
{
    int i,j;
    for(i='a';i<='c';i++)
    {
        for(j='x';j<='z';j++)
        {
            if(i=='a'&&j=='x'||(i=='c'&&(j=='x'||j=='z'))) continue;
            printf("%c VS %c \n",i,j);
        }
    }
}

#include "stdio.h"
void main()
{
    int i,j,k=0,flag=0,n=0;
    char a[]="abc";
    char b[]="xyz";
    char c[3];
    
    for(i=2;i>=0;i--)
    {
        for(j=0;j<=2;j++)
        {
            if(a[i]=='a'&&b[j]=='x'||(a[i]=='c'&&(b[j]=='x'||b[j]=='z'))) continue;
            
            //如果数组中已存在则不行
            flag=0;
            for(k=0;k<3;k++)
            {
                if(c[k]==b[j]){flag=1;break;};
            }
            
            //存入数组中
            if(flag==0){
               c[n++]=b[j];
               break;
            }
        }
    }
    
    for(i=0;i<3;i++)
    {
        printf("%c对%c \t",a[i],c[2-i]);
    }
}

 

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 请写1个支付宝接龙红包程序. 随机产生1-100的随机数,作为红包金额. 让用户不断的去猜,直到猜正确为止.最后发给用户的红包金额是 红包金额/猜得次数. 2. 循环录入5个人的年龄并计算平均年龄,如果录入的数据出现负数或大于100的数,立即停止输入并报错. 3. 实现要求用户一直输入QQ号码和密码,只要不是123456、888888就一直提示要求重新输入,如果正确则提登录成功. 4. 1-100之间不能够被7整除的数的和. 5. 求1-200之间的所有的整数的累加和 6. 求1-100之间6的倍数的个数 7. 输入班级人数,然后依次输入学员成绩,计算班级学员的平均成绩和总成绩 8. 2006年培养学员80000人,每年增长25%,请问按此增长速度,到哪一年培训学员人数将达到20万人?*** 9. 从键盘输入10个数,求出最大数 10. 1000~ 5000之间有多少整数,其各位数字之和为5,分别是哪些数(例如整数2003的各位数字之和为 2+0+0+3 ,等于5)), 并统计满足条件的整数有多少个。 11. 求1-100中 是7的倍数 的数值之和 12. 求1-1000之间的所有的奇数之和 13.猜数字游戏. 随机产生1个1-100之间的数 让用户猜 当用户输入的数比产生的随机数大 就输出 猜大了 并让用户继续输入新的数.。 当用户输入的比产生的随机数小的时候 就输出 猜小了 并且继续猜 当用户刚好输入的就是这个随机数的时候 提示成功 并显示用户猜了多少次. 14. 老师问学生,这道题你会做了吗? 如果学生答"会了(y)",则可以放学. 如果学生不会做(n),则老师再讲一遍,再问学生是否会做了......直到学生会为止,才可以放学. 直到学生会或老师给他讲了10遍还不会,都要放学 15. 写1个程序. 随机的产生1个2位数的加法运算.让用户输入这个运算的结果 然后判断这个结果是否正确. 来10次. 每个人默认有10分. 产生10个加法运算.操作数的范围在0-100之间. 每产生1个加法运算 就让用户输入结果.判断是否正确. 当回答正确的时候就为用户加1分. 错误的时候就扣1分. 当10道题目回答完毕之后 就显示用户得的分数. ***
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值