ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

自学C语言

2022-01-20 15:59:30  阅读:88  来源: 互联网

标签:case int scanf C语言 break while printf 自学


目录

一、基础知识掌握

1、运算符的优先级

在这里插入图片描述
例如:求平均数

#include <stdio.h>
int main()
{
	int a,b;
	scanf("%d %d",&a,&b);
	double c=(a+b)/2.0;
	printf("%d和%d的平均数为:%f",a,b,c);
	return 0;
}

这里先进行加法运算,再进行除法
翁恺C语言2.2.2课程有讲到
自右向左(赋值运算是最低级的)
在这里插入图片描述
最好不要写的那么复杂,把它拆分表示更为明了和清晰

二、if语句

1、if(条件)

	int hour1,min1;
	int hour2,min2;
	scanf("%d %d",&hour1,&min1);
	scanf("%d %d",&hour2,&min2);
	int im,ih;
	ih=hour2-hour1;
	im=min2-min1;
	if(im<0){ 
		im = im + 60;
		ih --;
	} 
	printf("时间差%d小时%d分钟。\n",ih,im);

有一个条件时可以不加{},但是为了防止出错误,还是最好每个if后面都加{}

2、if-else语句

	int x;
	scanf("%d",&x);
	int f=0;
	if (x==0){
		f=0;
	}else if (x>0){
		f=2*x;
	}else if (x<0){
		f=1;
	}
	printf("%d\n",f);

else紧跟离他最近的if

3、多路分支Switch-case语句

	int type;
	scanf("%d",&type);
	switch(type){
		case 1:
			printf("早上好!");
			break;
		case 2:
			printf("中午好!");
			break;
		case 3:
			printf("晚上好!");
			break;
		default:
			printf("大家好!");
			break; 

这里定义了一个整型变量type,当type=1,输出早上好
但是,如果后面没加break,那就完了,每一个后面都没加
那就会输出全部的内容。break相当于打破这个进程。

	int grade;
	scanf("%d",&grade);
	grade /= 10;
	switch(grade){
		case 10:
		case 9:
			printf("A\n");
			break;

例如这里:case 10运行到这里什么都没有直接到了case 9
那么输出A,意思就是说成绩在90-100的等级都为A
没有break那么就会出现如下情景:
在这里插入图片描述
正确的应该是每一个printf分号后面都加上break;
才能保证区间。

三、while循环

1、do-while

循环体内一定要有改变条件的机会
否则,无限循环
在这里插入图片描述
do-while和while的区别在于,do-while循环是在进入循环后才去判断条件是否满足,而while循环是先判断条件是否满足才进入循环。
一定要注意的是while(); while后面有分号!!!

	int x;
	scanf("%d",&x);
	int n=0;
	do{
		n++;
		x /=10;
	}while(x>0);
	printf("%d",n);

与while循环对比看看:

	int x;
	int n=0;
	scanf("%d",&x); 
	while(x>0){
		n++;
		x /= 10;
	}
	printf("位数:%d",n);

标签:case,int,scanf,C语言,break,while,printf,自学
来源: https://blog.csdn.net/m0_63192871/article/details/122570506

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有