C语言结构体

#include<stdio.h>
//int main(){
//	int a=10,b=20;
//	int sum=a+b;
//	printf("%d\n",sum);
//}
	struct Book	{
		char name[20];//C语言程序设计
		short price;//55
	};
	int main(){
		//利用结构体类型-创建一个该类型的结构体变量
		struct Book b1={"C语言程序设计",55};
		strcpy(b1.name, "C++");
		struct Book*pb=&b1;
		printf("%s\n",pb->name);
		printf("%d\n",pb->price);
	//printf("书名:%s\n",b1.name);
	//printf("价格:%d元\n",b1.price);
	//b1.price=15;
	//printf("修改后的价格:%d\n",b1.price);

	}
//int main(){
	

	//int a=10;
	//int* p=&a;
	//*p=20;
	//printf("a=%d\n",a);//*-解引用操作符
	//double d=3.14;
	//double *pd=&d;
	//*pd=5.5;
	//printf("%lf\n",*pd);
	//printf("%d\n",sizeof(pd));
	//printf("%d\n",sizeof(char*));
	//printf("%d\n",sizeof(short*));
	//printf("%d\n",sizeof(int*));
	//printf("%d\n",sizeof(double*));

//	return 0;
//}
#include<stdio.h>
 #include<string.h>
 struct Book{
 char name[20];
 short price;
 };
int main(){
 struct Book b1={"C语言程序设计",55};
strcpy(b1.name,"C++");
 struct Book *pb=&b1;
printf("%s\n",b1.name);
 printf("书名:%s\n",pb->name);
 b1.price=15;
printf("价格:%d元\n",pb->price);
 }

p6 提前准备

定时写博客,总结自己的代码

每天都要学习。跟着鹏哥没毛病

p7 分支和循环

C语言是一门结构化的程序设计语言

1.顺序结构

2.选择结构

3.循环结构

#include<stdio.h>
int main(){
    int age=20;
    if(age<18)
        printf("未成年\n");
    else
        printf("成年\n");

}

#include<stdio.h>
int main(){
    int age=100;
    if(age<18)
    printf("未成年\n");
else
 {
     if (age>=18&&age<28) 
     printf("青年\n");
     else if(age>=28&&age<50)
     printf("壮年\n");
      else if(age>=50&&age<90)
     printf("老年\n");
     else
      printf("暮年\n");
 };
}

一对大括号就是一个代码块

我在后面再加一条语句,就会报错。

需要加一组大括号才能控制多条语句。

#include<stdio.h>
int main(){
    int a=0;
    int b=2;
    if(a==1)
         if (b==2) 
        printf("hehe\n");
    else 
        printf("haha\n");
    return 0;
}

结果时空的

悬空else是与其就近的未匹配的if匹配。也就是第二个if匹配

输出1-100的数,且是奇数

#include<stdio.h>

int main(){

 for (int i=1; i<=100;i+=2 ) {

    if (i%2==1)

    printf("奇数为%d\n",i);    

 }

    return 0;

}

输出对应的星期

#include<stdio.h>
int main(){
    int day=0;
    scanf("%d",&day);
    switch (day) {
    case 1:
    printf("星期%d",day);break;
    case 2:
    printf("星期%d",day);break;
    case 3:
    printf("星期%d",day);break;
    case 4:
    printf("星期%d",day);break;
    case 5:
    printf("星期%d",day);break;
    case 6:
    printf("星期%d",day);break;
    default:
    printf("星期日");break;
    }
}

星期1-5为工作日

星期6-7为休息日

非法的数据为输入错误

#include <stdio.h>
int main(){
    int day=0;
    scanf("%d",&day);
    switch (day) {
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    printf("工作日");break;
    case 6:
    case 7:
    printf("休息日");
    break;
    default:
    printf("输入错误!");
    break;
    }
}

continue是结束本次循环

break是直接跳出循环

#include<stdio.h>
int main(){
    int n=1;
    int m=2;
    switch (n) {
    case 1:m++;
    case 2: n++;
    case 3:
        switch (n) {
        case 1:n++;
        case 2:m++;n++;break;
        }
    case 4:m++;
    break;
    default:
    break;
    }
    printf("m=%d,n=%d\n",m,n);
    return 0;
}

#include<stdio.h>
int main(){
    int ch=0;
    while ((ch=getchar())!=EOF) {
    putchar(ch);
    }
    return 0;
}

输入r得出r

#include<stdio.h>
int main(){
    // int ch=0;
    // while ((ch=getchar())!=EOF) {
    // putchar(ch);
    // }
    int ret=0;
    char password[20]={0};
    printf("请输入密码:>");
    scanf("%s",password);
    //缓冲区还剩余一个\n
    //读取一下\n
    int ch=0;
    while ((ch=getchar())!='\n') {
    ;
    }

    printf("请确认(Y/N):>");
    ret=getchar();
    if(ret=='Y')
    {
        printf("确认成功");
    }else {
      printf("放弃确认");
    }
  
    return 0;
}

这里面的getchar()只能读取一个字符,而字符最后还有一个'\n'。为了读取掉\n使用一个getchar()

直到没有\n

然后就是识别成功,输入y,最后是确认成功

#include<stdio.h>
int main(){
    int ch=0;
    while ((ch=getchar())!=EOF) {
    if (ch<'0'||ch>'9') {
    continue;
    putchar(ch);
    }
    }
    return 0;
}

这个程序是检测是否具有0-9数字

#include<stdio.h>
int main(){
    int i=0;
    for (i=1; i<=10; i++) {
        printf("%d",i);
    }
    return 0;
}

运行结果:

  1. #include<stdio.h>
    int main(){
        int i=0;
        for (i=1; i<=10; i++) {
        if (i==5) 
        continue;
        printf("%d",i);
        
        }
        return 0;
    }

  2. #include<stdio.h>
    int main(){
        int i=1;
        while (i<=10) {
        if (i==5) 
        continue;
        printf("%d",i);
        i++;
        }
        return 0;
    }

    1234无限循环

  3. #include<stdio.h>
    int main(){
        int i=0;
        for (i=0; i<10; i++) {
        if (i=5) {
        printf("haha\n");
        printf("hehe\n");
        }
        }
        return 0;
    }

  4. 无限循环haha,hehe.因为这个代码执行非5,再赋值成为5,输出haha。这样无限循环。

  5. #include <stdio.h>
    int main(){
        int arr[10]={1,2,3,4,5,6,7,8,9,10};
        int i=0;
        for (i=0;i<10;i++) {
    printf("%d",arr[i]);
        }
        return 0;
    }

  6. #include<stdio.h>
    int main(){
        int i=0;
        int j=0;
        for (; i<10; i++) {
        for (; j<10; j++) {
        printf("hehe");
        }
        }
        return 0;
    }

  7. #include<stdio.h>
    int main(){
        for (int i=0; i<10; i++) {
        for (int j=0; j<10; j++) {
        printf("hehe\n");
        }
        }
        return 0;
    }

  8. 以上的代码告诉我们,i,j不能随便省略。

  9. #include<stdio.h>
    int main(){
        int x,y;
        for(x=0,y=0;x<2&&y<5;++x,y++){
            printf("hehe\n");
        }
        return 0;
    }

  10. #include <stdio.h>
    int main(){
        int i=0;
        int k=0;
        for (i=0, k=0;k=0; i++,k++) 
        k++;
        return 0;
      
    }

  11. do while循环

  12. #include<stdio.h>
    int main(){
        int i=1;
        do{
            printf("%d",i);
            i++;
        }while(i<=10);
        return 0;
    }

  13. #include<stdio.h>

    int main(){

        int i=1;

        do{

            if (i==5)

            break;

            printf("%d",i);

            i++;

        }while(i<=10);

        return 0;

    }

#include<stdio.h>
int main(){
    int i=1;
    do{
        if (i==5) 
        continue;
        printf("%d",i);
        i++;
    }while(i<=10);
    return 0;
}

#include<stdio.h>

int main(){

   int i = 0;

   int n = 0;

    int ret = 1;

   scanf("%d",&n);

   for (i = 1; i <= n; i++) {

       ret=ret*i;

   }

   printf("ret=%d\n",ret);

    return 0;

}

#include<stdio.h>

int main(){

    int i=0;

    int n=0;

    int ret=1;

    int sum=0;

    for (n=1; n<=3; n++) {

        ret =1;

        for (i=1; i<=n; i++) {

        ret=ret*i;

        }

        sum=sum+ret;

    }

    printf("sum=%d\n",sum);

    return 0;

}

算一下1!+2!+3!+4!+5!+6!+7!+8!+9!+10!=4037913

#include<stdio.h>

int main(){

    int i=0;//1*2*3*4*5

    int n=0;

    int ret=1;

    int sum=0;

    for (n=1; n<=10; n++) {

    ret=ret*n;//1*1 ret=1 sum=1 ret=1*2 sum=1+2=3 ret=2*3=6 sum=3+6=9

    sum=sum+ret;

    }

    printf("sum=%d\n",sum);

    return 0;

}

  • 19
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

靳向阳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值