输入输出
- 输出:printf()
#include <stdio.h>
int main() {
int x=6; //整数形式
float y=6.3; //浮点类型
char z ='&'; //字符类型
printf("第一种形式\n");
printf("%d\n",x); //%d相当于一个转义字符,代表的是参数x
printf("%f\n",y); //%f相当于一个转义字符,代表的是参数y
printf("%c\n",z);
printf("%d,%f,%c",x,y,z);
}
2.输入:scanf()
#include <stdio.h>
int main() {
int x;
float y;
char z;
printf("请输入三个数(int,float,char):");
scanf("%d,%f,%c",&x,&y,&z);
printf("%d,%f,%c",x,y,z);
}
一些常见的格式说明符包括:
%d
: 用于整数(int
)的输出。%f
: 用于浮点数(float
和double
)的输出。%c
: 用于字符的输出。%s
: 用于字符串的输出。%x
或%X
: 用于十六进制数的输出。%o
: 用于八进制数的输出%p
: 用于指针的输出
运算符
各运算符优先级: 算数运算符>关系运算符>逻辑运算符
算数运算符
加: +
减: -
乘: *
除: /
取余: %
++
--
- 其中取余%,
i%x | i%x | |
---|---|---|
情况 | i=x | |
余数 | i(为被去余数本身) | 如6%6=0(余数为0)6%2=0(余数为0)6%4=2(余数为2) |
- 其中++和--
#include <stdio.h>
int main() {
int i=6;
printf("%d\n",++i); //先加1,后输出值为7
printf("%d\n",i); //输出值为7
printf("%d\n",i++); //先输出i值为7,然后加1为8
printf("%d\n",i); //i值已经为8
printf("%d\n",i/3); //i为8,8除以3,8/3=2,%d只取整数
printf("%d\n",i%3); //i值变为了2,2%3=2
printf("%d\n",i--); //i值为8,先输出为8在减1,i值变为7
printf("%d\n",--i); //i值为7,先减1在输出为6
}
关系运算符
假为0,真为1
等于 =
不等于 !=
大于 >
小于 >
大于等于 >=
小于等于 <=
测试代码
#include <stdio.h>
int main() {
int x=3;
int y=2;
printf("%d\n",x>y); //3>2为真,值为1
printf("%d\n",x<y); //3<2为假,值为0
printf("%d\n",x!=y); //3不等于2为真,值为1
x=2;//x值变为了2
printf("%d\n",x==y); //2=2为真,值为1
printf("%d\n",x<=y); //2<=2为真,值为1
printf("%d\n",x>=y); //2>=2为真,值为1
}
逻辑运算符
与 &&
或 ||
非 !
- 与
&&
比如a && b
,a和b条件必须同时满足 - 或
||
比如a || b
,a条件和b条件,只需要满足一个 - 非
!
比如!(x<170)
,表示不是x<170
,或者!5,那就为0,5代表非0数
#include <stdio.h>
//各运算符优先级: 算数运算符>关系运算符>逻辑运算符
int main() {
int a=3,b=4,c=5,x,y;
printf("%d\n",a+b>c&&b==c); //7>5为假&& 4=5也为假,结果为假,值为0
printf("%d\n",a||b+c&&b-c); //3||9&&-1值都无比较,结果为真,值为1
printf("%d\n",!(a>b)&&!c||1); //3<=4为真&&0||1,结果为真,值为1,!非0数,那就是0
printf("%d\n",!(x=a)&&(y=b)&&0); //!3为0在与中,一值为假,即为假,结果为假,值为0
printf("%d\n",!(a+b)>c-1&&b+c/2); //0>4为假,结果为假,值为0
}
条件运算符
表达式1: ?
表达式2: :
max=(a>b)?a:b
; 如果(a>b),那么整体表达式的值为a,然后max=a,如果a不大于b,那么表达式整体为b,然后max=b,a>b?(max=a):(max=b)
0 如果a>b,那么整体表达式的值为max=a,如果不大于b,那么表达式整体为max=b,- 前面为真,那么就会选择最近的那个数,如果为假,那么就会选择远的那个数
示例
#include <stdio.h>
int main() {
int a=3,b=4;
a>b?printf("%d",1):printf("%d",0); \\3>4为假,所以会输出0
}
程序设计结构
- 循环结构两种结构:
while
for
- 选择结构两种结构:
if else
switch case
while循环语句
只要while(.....){....};,括号中不为0,就会一直执行{ }中的内容,
比如
#include <stdio.h>
int main() {
while (123456) //括号中不为0,会一直执行{}中内容
{
printf("I Love you!\n");
}
}
比如,在括号中填入关系式
#include <stdio.h>
int main() {
int i=0; //定义一个变量i为0
while (i<3) //在i<3的情况下{}中的内容会一直执行,会执行3次
{
printf("I Love you!\n");
++i; //每循环一次,i加一
}
}
比如,在括号中填入逻辑加关系式
#include <stdio.h>
int main() {
int i=0; //定义一个变量i为0
int j=0;
while (i<3&&j<5) //在i<3的情况下{}中的内容会一直执行,会执行3次,在第三次之后,j尽管<5,但i之后会大于3,所以之后不会执行
{
printf("I Love you!\n");
++i; //每循环一次,i加一
++j;
}
}
for循环
只要for(;😉{....};,括号中不为0( ; ; )括号中;两边默认为1,就会一直执行{ }中的内容,
例如:for (i=0;i<5;i++)
使i先为0,i小于5时不为0,为真,则执行{}中内容,每执行一次i的值就加一
#include <stdio.h>
int main() {
int i;//定义一个变量i为0
for (i=0;i<5;i++) //在i<5的情况下{}中的内容会一直执行,会执行3次
{
printf("I Love you!\n");
}
}
if else
如果if ()括号中为真,则执行if和else中的代码,如果为假,则执行else后的内容,也可以嵌套执行
#include <stdio.h>
int main() {
int i=179;//定义一个变量i为0
char y='m'; //"有u m h,可选择
if (i=180&&y=='h')
printf("考虑\n");
else
if (i<180 && y=='m')
printf("考虑\n");
else
printf("不考虑");
}
switch-case
例如,输入等级,显示所在分数段
#include <stdio.h>
int main() {
char grade;
scanf ("%c",&grade);
printf("你的等级:");
switch (grade)
{
case 'A':printf("85~100\n");break;
case 'B':printf("85~100\n");break;
case 'C':printf("85~100\n");break;
case 'D':printf("85~100\n");break;
default:printf("data erro\n");break;
}
}
函数
例子,通过调用函数,来实现加减乘除的功能
#include <stdio.h>
int com(int a,int b) //创建一个名为com的函数
{
int n,max;
printf("1-------------两数相加\n");
printf("2-------------两数相减\n");
printf("3-------------两数相乘\n");
printf("4-------------两数相除\n");
printf("5-------------两数取余\n");
printf("6-------------两数比较大小\n");
printf("请输入你需要的功能:\n");
scanf("%d",&n); //输入且赋值给n
switch (n)
{
case 1:printf("%d",a+b);break;
case 2:printf("%d",a-b);break;
case 3:printf("%d",a*b);break;
case 4:printf("%d",a/b);break;
case 5:printf("%d",a%b);break;
case 6:printf("%d",max=a>b?a:b);break;
default:("请选择正确的数字");break;
}
}
int main() {
int a,b;
printf("请输入两个数:");
scanf("%d,%d",&a,&b); //输入且赋值给a和b
com(a,b); //调用这个名为com的函数
}
函数的返回值
定义函数,有两种,一种带返回值为 int
和不带返回值 void
第一种,带返回值int定义函数
#include <stdio.h>
int max(int x,int y) //创建一个名为com的函数
{
int z;
z=x>y?x:y;
return z; //返回值为z,因为函数类型为int,所以整个函数返回z值
}
int main() {
int x,y;
scanf("%d,%d",&x,&y);
printf("%d",max(x,y)); //打印除max函数,因为返回值为z,所以,输出z值
}
第二种,不带返回值void定义函数
#include <stdio.h>
void max(int x,int y) //创建一个名为max的函数
{
int z;
z=x>y?x:y;
printf("%d",z); //返回值为z,因为函数类型为void,所以整个函数不会返回任何值,用return也不回返回,所以直接打印出来
}
int main() {
int x,y;
scanf("%d,%d",&x,&y);
max(x,y); //打印除max函数,因为返回值为z,所以,输出z值
}