c语言12

56 阅读1分钟

循环嵌套

  1. 一个套了另一个(注意变量不要重复)
#include<stdio.h>
int main(){
    for(int i =1;i<=10;i++)
    {
        if(i ==3){
            continue;
        }
        if(i ==5){
            break;
        }
        printf("%d\n",i);
    }
    return 0;
}
#include<stdio.h>

int main()
{
    for(int i=1; i<=5; i++)
    {
        int j=i;
        for(; j>=1; j--)
        {
            printf("* ");
        }
        printf("\n");
    }
    return 0;
}
  1. 递增
#include<stdio.h>

int main()
{
    for(int i=1; i<=5; i++)
    {
        for(int j=1; j<=i; j++)
        {
            printf("* ");
        }
        printf("\n");
    }
    return 0;
}
  1. 递减
#include<stdio.h>

int main()
{
    for(int i=1; i<=5; i++)
    {
        for(int j=1; j<=6-i; j++)
        {
            printf("* ");
        }
        printf("\n");
    }
    return 0;
}
  1. 更高级的空格+*
#include <stdio.h>

int main()
{
    for (int i = 1; i <= 5; i++)
    {
        for (int j = 1; j <= i; j++)
        {
            printf(" ");
        }
        for (int k = 1; k <= 6 - i; k++)
        {
            printf("*");
        }
        printf("\n");
    }
    return 0;
}
  1. 乘法口诀表 其中\t为梯形状换行
#include <stdio.h>

int main()
{
    for (int i = 1; i <= 9; i++)
    {
        for (int j = 1; j <= i; j++)
        {
            printf("%d * %d = %d\t", j, i, i * j);
        }
        printf("\n");
    }
    return 0;
}
  1. 打印1-100的素数 我解法
#include <stdio.h>

int main()
{
    for (int i = 2; i <= 100; i++)
    {
        int flag = 0;
        for (int j = 2; j < i; j++)
        {
            if (i % j == 0)
            {
                flag = 1;
                break;
            }
        }
        flag==0?printf("%d\n", i):printf("");
    }
    return 0;
}

老师解法

#include <stdio.h>

int main()
{
    for (int i = 2; i <= 100; i++)
    {
        int j;
        for (j = 2; j < i; j++)
        {
            if (i % j == 0)
            {
                break;
            }
        }
        if(i == j){
        printf("%d\n", i);
        }
    }
    return 0;
}

《算经》中曾提出一个“百钱买百鸡”问题,鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁,母,雏各几何?(即公鸡5钱一只,母鸡3钱一只,小鸡三只一钱。问:100钱买一百只鸡,公鸡、母鸡、小鸡各多少只?

#include<stdio.h>

int main(){
    for(int x=1;x<20;x++){
        for(int y=1;y<33;y++){
            int z=100-x-y;
            if(z%3==0&&x*5+y*3+z/3==100){
                printf("%d %d %d\n",x,y,z);
            }
        }
    }
}