浅学C++ (3)学习C语言

标准C语言
一,类型转换
    只有相同类型的数据才能计算,如果类型不相同需要先转换类型相同后在进行运算。
    自动类型转换:
        转换规则:一不丢失数据为基础,可以适当牺牲一些空间
            1,字节少的向字节多的转
            2,有符号的向无符号的转
            3,整型向浮点型转
            tap:char short 如果与不同类型的数据运算时,会先提升为int类型后参与运算
    强制类型转换:
        (新类型名)数据;有可能会丢书数据,所以要慎重使用
二,for循环语句
    循环就是一种让代码反复执行的方法,达到你想要的效果
    for循环语句是一种非常灵活,变幻多样且危险(相比其他循环)得循环
    for一般使用一个变量来引导循环的执行;该变量叫做循环变量 i
    for([1];[2];[3])
    {
        [4]
    }
    [1],给循环变量赋初始值 ,只有C99以上标准才可以在此处定义循环变量
    [2],判断循环变量是否到达边界,如果没到达就进入循环[4]
    [4],被反复执行的代码,称为循环体
    [3],改变循环变量的值,防止出现死循环,一般是对循环变量的自加或自减。

    大括号问题:
        1,建议上下对其
        2,如果循环体中只有一行代码,大括号可以省略但是不利于扩展,一般商业代码要求大括号不省略

    for循环的几种写法:
        for(;;)
        {
            //死循环
        }

        for(;i<10;i++)
        {

        }

        for(int i=0;;i++)
        {
            if(i>=10)
            {
                break;
            }
        }

        for(int i=0;i<10;)
        {
            ...
            i++;
            ...
        }

三, while 循环语句
    while(表达式)
    {
        //循环体
    }
    当表达式为真时执行循环体,执行完后重新判断表达式,以此类推,直到表达式为假,结束循环。
    while 相当与 for 的精简版本
    for 循环专门负责解决明确知道循环次数的问题
    while 循环专门负责解决不知道循环次数的问题

四,do-while 循环语句
    do{
        //循环体
    }while(表达式);//表达式为真循环继续,为假结束循环
    先执行循环体,在判断循环条件,该循环体至少执行一次,适合先干活,后检查的特殊情况
        例如输入密码,文件内容判断
    
    for  while  do while 循环的区别:
        for循环一般指定一个循环变量,来让代码反复执行
        while循环是for循环的精简版,一般用来执行不知道精确次数的循环
        do while 与while相似,但do while 至少执行一次

五,循环嵌套
    循环语句中包含了循环语句
    外层循环执行一次,内层循环执行n次
六,跳转语句
    goto
        可以在函数内任意跳转
        标签名:
            ...
            goto 标签名;
        它可能会破坏已经设计好的分支或者循环结构,因此绝大多数公司禁止使用goto
        但是在驱动编程时特别适合处理异常
    break
        1,在 switch 中关闭 case 执行开关
        2,跳出循环,只能跳出当前单层循环
    continue
        结束本次循环,进入下一次循环
    return
        1,结束函数的执行,程序跳转到函数调用的地方继续执行
        2,可能返回一个数据给函数的调用者

每日一练:

练习1: 输入一个月份,判断是什么季节
练习2: 输入一个月份,判断该月有多少天,忽略润平年问题
练习3: 计算出所有的三位水仙花数
练习4: 输入一个正整数,判断是否为素数
练习5: 输入一个正整数,判断是否时回文数
练习6: 模拟输入6位密码,输入的密码正确显示"登录成功",输入错误提示还剩几次机会,
       并继续输入密码,最多错三次,否则显示"账号已锁定,请联系柜台",并结束程序


作业1: 打印99乘法表
作业2: 编程解决百钱百鸡问题
       公鸡五块一只 母鸡三块一只 小鸡一块三只
作业3: 计算出100~1000之间所有素数
#include <stdio.h>

int main(int argc,const char* argv[])
{
    int mouth = 0;
    printf("请输入一个月份:");
    scanf("%d",&mouth);
    if(mouth>12 || mouth<1)
    {
        printf("输入月份有误!!!");
        return 0;
    }
    switch(mouth)
    {
        case 1:case 2:case 3:
            printf("%d月是春天",mouth);
            break;
        case 4:case 5:case 6:
            printf("%d月是夏天",mouth);
            break;
        case 7:case 8:case 9:
            printf("%d月是秋天",mouth);
            break;
        default:
            printf("%d月是冬天",mouth);
    }

}
#include <stdio.h>

int main(int argc,const char* argv[])
{
    int month = 0;
    printf("请输入一个月份:");
    scanf("%d",&month);
    if(month>12 || month<1)
    {
        printf("输入有误!!!");
        return 0;
    }
    switch(month)
    {
        case 1:case 3:case 5:case 7:case 8:case 10:case 12:
            printf("%d月有31天\n",month);
            break;
        case 2:
            printf("%d月有28天\n",month);
            break;
        default:
            printf("%d月有30天\n",month);
    }
}
~
#include <stdio.h>

int main(int argc,const char* argv[])
{
    for(int i=100;i<1000;i++)
    {
        int a,b,c;
        a=i/100;
        b=(i-a*100)/10;
        c=(i-a*100)%10;
        if(i == (a*a*a+b*b*b+c*c*c))
        {
            printf("%d ",i);
        }
    }
}
  1 #include <stdio.h>
  2
  3 int main(int argc,const char* argv[])
  4 {
  5     int num,flag=1;
  6     printf("请输入一个正整数:");
  7     scanf("%d",&num);
  8     if(1>=num)
  9     {
 10         printf("输入有误,你个大傻逼!!!");
 11         return 0;
 12     }
 13     for(int i=2;i<num;i++)
 14     {
 15         if(0 == num%i)
 16         {
 17             flag = 0;
 18             break;
 19         }
 20     }
 21     if(flag)
 22     {
 23         printf("%d是素数",num);
 24     }
 25     else
 26     {
 27         printf("%d不是素数",num);
 28     }
 29 }
#include <stdio.h>

int main(int argc,const char* argv[])
{
    long long num;
    long long i=0,s=0;
    printf("请输入一个正整数:");
    scanf("%lld",&num);
    s = num;
    while(s>0)
    {
        i = i*10+s%10;
        s = s/10;
    }
    if(i == num)
    {
        printf("%lld 是回文数",num);
    }
    else
    {
        printf("%lld 不是回文数",num);
    }
}
#include <stdio.h>

int main()
{
    int passwd;
    int flag = 123456,count = 3;
    printf("请输入密码:");
    scanf("%d",&passwd);
    do{
        if(passwd != flag)
        {
            printf("输入有误!!!(还剩%d次)\n请再次输入:",--count);
            scanf("%d",&passwd);
        }
        else
        {
            break;
        }
    }while(count>1);
    if(passwd == flag)
    {
        printf("登陆成功!!!");
    }
    else
    {
        printf("账号已锁定,请联系柜台");
        return 0;
    }
}
#include <stdio.h>

int main(int argc,const char* argv[])
{

     for(int i = 1; i <= 9; i++)
     {
        for(int j = 1; j <=i; j++)
        {
            printf("%d*%d=%d \t", j, i, j*i);
        }
        printf("\n");
    }
}
#include <stdio.h>

int main(int argc,const char* argv[])
{
    int flag=1;
    for(int i=100;i<1000;i++)
    {
        flag = 1;
        printf("%d",flag);
        for(int j=2;j<=(i/2);j++)
        {
            if(0 == i%j)
            {
                flag = 0;
                break;
            }
        }
        if(flag)
        {
            printf("%d ",i);
        }
    }
}
#include <stdio.h>

int main(int argc,const char* argv[])
{
    int i=0,j=0,k=0;
    for(i=0;i<=20;i++)
    {
        for(j=0;j<33;j++)
        {
            k=100-i-j;
            if(100 == 5*i+3*j+k/3 && 0 == k%3)
            {
                printf("公鸡:%d 母鸡:%d 小鸡:%d\n",i,j,k);
            }
        }

    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值