c入门1
- 头文件include <stdio.h>
- int main(){}
- gcc编译 -o 改得可执行文件名称
c入门2
2.1 基础数据类型:字符型、整型、浮点型
- 2.1.1 字符型,单个字符需要单引号引起来,占位符%c
- 2.1.2 整型,%d
- 2.1.3 浮点型,%f
2.2 运算符:算术运算符、关系运算符、逻辑运算符
- 2.2.1 算术运算符:
+
-
*
/
%
取余
*
/
%
优先级大于+
-
注:
23%10得个位数
23/10得十位数
- 2.2.2 关系运算符
==
!=
>
<
>=
<=
- 2.2.3 逻辑运算符
&&
与(都真才真)||
或(一真即真)!
非(取反)
优先级:!
>算术运算符
>关系运算符
>&&
>||
2.3 变量
- 2.3.1 类型 变量名
- 2.3.2 命名规则:
- 字母、数字、下划线组成
- 不能数字打头
- 区分大小写
- 不能用c语言的关键字『auto break …』
- 2.3.3 变量使用必先初始化!!!(定义和赋值)
三要素:类型、变量名、值 - 2.3.4 表达式(可计算的式子,必有结果)
- 2.3.5 输入
int n;
int a,b;
scanf ("%d %d %d",&n,&a,&b);
如果取余,占位符写两个%%
才会显示出一个且不会出错,如printf("%d %% %d\n",a,b);
- 2.5.6
++n
- 它是一个式子,本身是有值的
- 它会改变变量n的值
注:n++后缀自增/n–自减 表达式的值是原来的值,计算结束后,变量的值自动加一
前缀自增(++n) | 前缀自减(–n) | 后缀自增(n++) | 后缀自减(n–) | |
---|---|---|---|---|
表达式的值 | n+1 | n-1 | n | n |
变量的值 | n+1 | n-1 | n+1 | n-1 |
1==n 可以避免少写一个=的情况1=n就会u报错,左值右值!!!须补充 |
在vim中想补齐可以按ctrl+p
c入门3
-
switch
-case
:case
后需要跟整型常量;分条件了需break
,如果没有break会继续执行,相当于与下面的同判别方法; -
3.2.1 while(){}
重要示例:
#include <stdio.h>
int main(){
//求mn之间的全部整数
/* int n,m;
printf("input n,m:");
scanf("%d%d",&n,&m);
while(n<m){
printf("%d ",++n);
}
printf("\n");
*/
int n;
scanf("%d",&n);
//输入一个整数n,求出这个数的位数。如:123的位数为3
int count =0;
while(0!=n){
n/=10;
count++;
}
printf("%d\n",count);
//输入一个整数n,求出每位的整数和
int m;
scanf("%d",&m);
int sum=0;
while(0!=m){
sum+=m%10;
m=m/10;
}
printf("sum=%d\n",sum);
//输入一个整数,将数字按位反转。
int a;
scanf("%d",&a);
int sum2=0;
while(0!=a){
sum2=sum2*10+a%10;
a/=10;
}
printf("sum2=%d\n",sum2);
}
- 3.2.2
do-while
和while
的区别(送命题):
do-while是先循环后判断,循环体至少执行一次。
while是先判断后执行,可能一次都不执行循环体。 - 3.2.3 for语句
for
(初始值;条件;递增或递减){}
示例:
#include<stdio.h>
int main(){
int n;
scanf("%d",&n);
int sum=0;
int res=1;
for(int i=0;i<n;++i){
int m;
scanf("%d",&m);
sum+=m;
res*=m;
}
printf("sum=%d\n",sum);
printf("multi=%d\n",res);
printf("average=%d\n",sum/n);
}
- 3.2.4
break
和contine
语句
在while
和for
中,break
是结束整个循环体,continue
是结束单次循环
示例代码:
#include<stdio.h>
int main(){
//打印21世纪前十个平年
int count =10;
for(int i=2000;i<2100;++i){
if(i%4==0&&i%100!=0||i%400==0)continue;
printf("%d\n",i);
--count;
if(0==count)break;
}
*
//打印21世纪前十个闰年
int count2 =10;
for(int i=2000;i<2100;++i){
if(i%4==0&&i%100!=0||i%400==0){
printf("%d\n",i);
--count2;
if(0==count2)break;
}
}
}
- 3.3.1
if
,while
,for
中只有一条语句,可以省略大括弧 - 3.3.2 三元运算符
:?
days=(year%4==0&&year%100!=0||year%400==0)?29:28;