c语言循环结构

#define _CRT_SECURE_NO_WARNINGS 
#include<stdio.h>

/*int main()
{
    int age = 20;
    if (age < 18)
        printf("未成年\n");
    else
        printf("成年\n");             
    return 0;
}
最基础
*/  

/*int main()
{
    int age = 100;
    if (age < 18)
        printf("未成年\n");
    else if (age >= 18 && age <= 45)
        printf("壮年\n");
    else if (age > 45 && age < 90)
        printf("老年\n");
    else
        printf("老不死\n");
    return 0;
}*/


/*int main()
{
    int age = 10;
    
    if (18 < age < 45)
        printf("壮年\n");
    return 0;
}
输出结果为壮年 因为18大于10 为假 那么就是0<45  结果又为真所以输出壮年。
如果int age = 20; 18<20为真 变成1<45  结果又为真所以输出壮年。*/

/*int main()
{
    int age = 10;
    if (age < 18)
    {
        printf("未成年\n");
        printf("不能谈恋爱\n");
    }                                                 在使用if else中如果要执行多条语句那么要加大括号{}否则程序有错。
    else if (age >= 18 && age <= 45)
        printf("壮年\n");
    else if (age > 45 && age < 90)
        printf("老年\n");
    else
        printf("老不死\n");
    return 0;
}*/

/*int main()
{
    int a = 0, b = 2;
    if (a == 1)              注意为==  (==表示判断是否相等)  (=为赋值)
        if (b == 2)
            printf("HAHA\n");
        else                 else 与最近的if使用           
            printf("HEHE\n");
    return 0;
 }
 a等于1 在进入b是否等于2。如果a不等于1那么就不进入下一个if的语句判断,并且因为else是跟着下一个if的所以什么都不输出,直接结束。
 如果第一个if为真进入下一个再次判断。
 */
 


/*int main()
{
    int x, y, min;
    printf("请输入x和y:");
    scanf_s("%d%d", & x, &y);
    printf("x = % d, y = % d\n", x, y);
    min = x;
    if (min > y)
        min = y;
    printf("最小值为:%d\n", min);
    return 0;
}
输入两个输并且输出较小的那个
*/
/*int main()
{
    int year;
    printf("请输入年份:");
    scanf_s("%d", &year);
    if (year % 4 == 0 && year % 100 != 0)//==需要注意
        printf("今年是闰年\n");
    else
        printf("今年不是闰年\n");
    return 0;
}*/

/*int main()
{
    int y, x,a;
    scanf("%d", &a);
    x = a;
    y = -1;
    if (x != 0)
        if (x > 0)
            y = 1;
        else y = 0;//else 跟着上面的if
    printf("y=%d\n", y);
    return 0;

}*/

/*int main()
{
    int a;
    scanf("%d", &a);
    if (a != 0)
        printf("a!=0\n");
    else
        printf("a==0\n");
    return 0;
}*/

/*void main()
{
    int score;
    printf("输入成绩score:\n");
    scanf("%d", &score);
    if (score > 100 || score < 0)
        printf("数据错误!\n");
    else if (score >= 90) printf("等级为A\n");
    else if (score >= 80) printf("等级为B\n");
    else if (score >= 70) printf("等级为C\n");
    else if (score >= 60) printf("等级为D\n");
    else printf("等级为E");
}*/


 /*void main()
{
    int score;
    printf("输入成绩score:\n");
    scanf("%d", &score);
    if (score > 100 || score < 0)
        printf("数据错误!\n");
    else 
    {
        switch (score / 10)
        {
        case 10:                          //没有break 进入下一条
        case 9:printf("A\n"); break;      //有break   跳出
        case 8:printf("B\n"); break;
        case 7:printf("C\n"); break;
        case 6:printf("D\n"); break;
        default:printf("E\n");    //swith语句中也可以没有default
         }
    }
}*/


//输入3个整数放入a,b,c中然后把数据从小到大放入a,b,c并输出;
/*void main()
{
    int a, b, c,t;
    printf("inputa,b,c:\n");
    scanf("%d%d%d", &a, &b, &c);
    if (a > b)
        t = a, a = b, b = a;//比较ab的大小 小的给a并且互换值
    if (a > c)
        t = a, a = c, c = t;//比较ac的大小 小的给a并且互换值
    if (b > c)
        t = b, b = c, c = t;
    printf("%d %d %d", a, b, c);
}*/

/*void main()
{
    int x, y;
    printf("请输入x:\n");
    scanf("%d", &x);
    if (x < 1)
    {
        y = x;
        printf("x=%3d,y=x=%d\n", x, y);                  //x<1 y=x
    }//执行多条语句用代码块                              //x<10 y=2x-1
    else if (x < 10)                                     //else y=3x-11
    {
        y = 2 * x - 1;
        printf("x=%3d,y=2*x-1=%d", x, y);
    }
    else
    {
        y = 3 * x - 11;
        printf("x=%3d,y=3*x-11=%d",x,y);
    }
}*/

//abc 中最大者赋值给max
/*void main()
{
    int a, b, c;
    int max;
    scanf("%d%d%d", &a, &b, &c);
    {
        if (a > b && a > c)
            max = a;
        else if (b > c)//a是最小的
            max = b;
        else     //a最小 并且b小于c
            max = c; 
    }
    printf("最大值是:%d\n", max);
}*/


/*void main()
{
    int a, b, c;
    int max;
    scanf("%d%d%d", &a, &b, &c);
    if (a > b)
        if (a > c)
            max = a;
        else//a>b ,a<c
            max = c;
    else//对应第一个if a<c
        if (b > c)
            max = b;
        else//对应上一个if(238行)a<c b<c
            max = c;
}*/

//寻找1到100之间的奇数
/*int main()
{
    int i = 1;
    while(i <= 100)
    {
        if (i % 2 == 1)
            printf("%d\n", i);
        i++;

    }

    return 0;
}*/


/*int main()
{
    int i = 0;
    while (i < 10)//whlie 循环必须有大括号 i从0开始一直到9 9-0+1一共10次
    {
        printf("*");
        i++;
    }
    printf("\n");
    return 0;
}*/


//求1+3+5+7+..+n 直到n<1000 输出他们的和
/*int main()
{
    int i, sum;
    i = 1;
    sum = 0;
    while (i < 1000)// 和if一样 都没有;
    {
        sum += i;
        i = i + 2;
    }
    printf("sum=%d", sum);
}*/

/*  do-while 语句
* do
*   循环体
* while(表达式);
* do-whlie 语句至少执行1次 再看while表达式里面的逻辑值 也可能会无限循环下去
*而while 语句可能1次也不执行
*/


//Fibonacci数列  1 1 2 3 5 8 13 21...
// f1=1
// f2=1
// fn=f(n-1)+f(n-2)

/*int main()
{
    int f1, f2, f3, m;
    f1 = 1, f2 = 1;
    m = 2;
        do
        {
            f3 = f1 + f2; m++;
            f1 = f2;
            f2 = f3;
        } 
        while (f3 < 500);
        printf("再第%d个月的兔子的数量达到%d只\n", m, f3);
        return 0;
}*/


//for 语句
/*int main()
{
    int i;
    for (i = 0; i < 10; i++)//不需要大括号 之间用;隔开 
        printf("*");
    printf("\n");
    return 0;
}*/

// for 语句可以表达式省略,但是两个;不能省略                          
//如for( ; ;)printf("*"); 虽然省略 但是表达式的值永远为真所以会无限循环                           
//for后一对圆括号的表达式可以是任意有效的c语言表达式)
//例如(sum=0,i=1;i<100;sum+=i,i++;) 此时表达式1和表达式3的值都为逗号表达式


//由键盘输入一个正整数m,判断是否为素数
//对于i(2- m-1) m%i!=0 则可以判断是否为素数 i的取值范围可以缩小到2到根号下m来减少循环次数
//#include<math.h>//sqrt函数在这个头文件里
/*int main()
{
    int i, m,k;
    printf("请输入一个正整数m:");
        scanf("%d",& m);
        k = sqrt(m);//根号下m
        for (i = 2; i <= k; i++)//i从2刀根号下m逐渐增加
            if (m % i == 0) break;//如果有约数,就会跳出循环 此时i肯定大于等于k
        if (i > k)
            printf("%d是一个素数\n", m);
        else
            printf("%d不是一个素数\n", m);
        return 0;
}*/

//continue语句的作用是跳过本次循环体中余下未执行的语句,立即执行下一次的循环条件判定
/*int main()
{
    int i, sum = 0;
    for (i = 1; i < 10; i++)
    {
        if (i % 2 == 0)  continue;//if里得为真的话 跳过本次循环剩下的语句 重新进行循环条件的判断 可以看出这里直接把偶数去掉 把奇数留下
        sum += i;
    }
    printf("sum=%d\n", sum);
    return 0;//可以看出是求1到10中所有素数的和

}*/


//   *           0   空格:3-0    *号:2*0+1 
//  ***          1         3-1         2*1+1
// *****         2         3-2         2*2+1
//*******        3         3-3         2*3+1
//输出这样的图形 使用循环的嵌套

/*int main()
{
    int i, j, k;
    for (i = 0; i < 4; i++)//控制行数4
    {
        for (j = 0; j < 3 - i; j++)
            printf(" ");        //输出空格
        for (k = 0; k < 2 * i + 1; k++)
            printf("*");    //输出*
        printf("\n");//换行
    }
}*/


/*
有这样的一个数列: +2    -3   +5    -8    +13
                  ——  —— ——  ——  ——
                    1     2    3     5     8        求这样数列的前20项之和 
观察发现 为一正一负      分母是上一个数的分子   分子还保持是上一个数分子分母之和这样的关系                    
*/
/*int main()
{
    int m, fuhao=1;//m用来控制前20个数的个数用于循环中 符号一开始为正1
    double fz = 2, fm = 1, sum = 0;
    for (m = 0; m < 20; m++)
    {
        sum = sum + fuhao * fz / fm;
        fz = fm + fz;  //分子还保持是上一个数分子分母之和这样的关系    
        fm = fz - fm;// fm+fz-fm=fz 这里的fz实际上就是上一个数的分母;
        fuhao = -fuhao;
    }
    printf("数列前20项之和为:%.2lf", sum);//.2lf 小数点保留后两位
    return 0;
}*/


/*void main()
{
    int x;
    printf("please input the x value:");
    scanf("%d", &x);
    switch (x / 10)
    {
        case 6:
        case 7:printf("PASS\n"); break;
        case 8:printf("GOOD\n"); break;
        case 9:
        case 10:printf("VERY GOOD"); break;
        default:printf("FAIL\n");
    }
}*/
//输入95结果为VERY GOOD 
//输入87结果为DOOD
//输入100结果为VERY GOOD
//输入43结果为FAIL
//输入66结果为PASS
//输入79结果为PASS
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值