C语言(三)– 循环结构
三目运算符

使用方法: 条件 ? 表达式1:表达式2

如果条件成立,执行表达式1,不成立实现表达式2

#include <stdio.h>

int main()
{
    int a = 4, b = 3;
    int res = 0;
    a > b ? res = a : res = b;
    printf("%d", res);
    return 0;
} 

while循环

简单样例

image-20221004174221405

#include <stdio.h>

int main()
{
    int i = 0;
    while(i < 10)
    {
        //if(i > 5) break;
//      if(i == 5)
//      {
//          i ++;
//          continue;
//      }
        printf("%d\n", i);
        i ++;
    }
} 

小练习

输出从1到100的和

#include <stdio.h>

int main()
{
    int i = 1, res = 0;
    while(i <= 100)
    {
        res += i;
        i ++;   
    }
    printf("%d", res);  
} 

for循环

image-20221004174929049

#include <stdio.h>

int main()
{
    for(int i = 0; i < 10; i ++)
        printf("%d ", i);
    return 0;   
} 

小练习

重写1加到100

#include <stdio.h>

int main()
{
    int res = 0;
    for(int i = 1; i <= 100; i ++)
        res += i;
    printf("%d", res);
} 

问?

1加到100的问题是否熟悉? 可以优化一下吗?

九九乘法表

打印九九乘法表

image-20221004180558320

#include <stdio.h>

int main()
{
    for(int i = 1; i <= 9; i ++)
    {
        for(int j = 1; j <= i; j ++)
        {
            printf("%d*%d = %-2d ", i, j ,i * j);
        }
        printf("\n");
    }
    return 0;
} 

跳转语句

break语句

给你一个数n(n >= 2),判断是不是质数

#include <stdio.h>

int main()
{
    int n;
    cin >> n;
    bool is_prime = true;
    for(int i = 2; i < n; i ++)
    {
        if(n % i == 0)
        {
            is_prime = false;
            break;
        }
    }
    if(is_prime) printf("%d是质数", n);
    else printf("%d不是质数", n);
    return 0; 
} 

continue语句

找出1到100中的所有奇数并输出

#include <stdio.h>

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

打印菱形

#include <stdio.h>

int main()
{
    int n;
    scanf("%d", &n);
    n = n / 2 + 1;
    for(int i = 1; i <= n; i ++)
    {
        for(int j = 0; j < n - i; j ++) printf(" ");
        for(int j = 0; j < 2 * i - 1; j ++) printf("*");
        printf("\n");
    }
    for(int i = 1; i <= n - 1; i ++)
    {
        for(int j = 0; j < i; j ++) printf(" ");
        for(int j = 0; j < 2 *(n - i - 1) + 1; j ++) printf("*");
        printf("\n");
    }
    return 0;
}
#include <stdio.h>
#include <math.h>

int main()
{
    int n;
    scanf("%d", &n);

    int cx = n / 2, cy = n / 2;

    for (int i = 0; i <= n; i ++ )
    {
        for (int j = 0; j <= n; j ++ )
            if (abs(i - cx) + abs(j - cy) <= n / 2)
                printf("*");
            else printf(" ");
        puts("");
    }

    return 0;
}

小彩蛋(关于时间复杂度)

#include<stdio.h>
#include <windows.h>
int main()
{
    system("color 0c");     
    float x,y,a;
    for(y = 1.5;y > -1.5; y -= 0.1214) 
    {
        for(x = -1.5;x < 1.5;x += 0.05)
        {
            a = x * x + y * y - 1;
//            if(a * a * a - x * x * y * y * y<=0)    
//                printf("*");   
//            else
//                printf(" ");
            for(int i = 0; i < 1000000; i ++){}
            putchar(a * a * a - x * x * y * y * y <= 0.0 ? '*' : ' ');
        }
        printf("\n");
    }
    return 0;
}
上一篇
下一篇