c语言培训三木,C语言—scanf函数、sizeof、三木运算、各种运算符

---scanf函数

1.scanf函数的基本使用

#include

int main()

{

// 定义一个变量,用来保存用户输入的整数

int number;

// scanf函数只接受变量的地址

// scanf函数是一个阻塞式的函数,等待用户输入

// 用户输入完毕后,就会将用户输入的值赋值给number变量

// 函数调用完毕

scanf("%d", &number);

printf("用户输入的值是%d\n", number);

return 0;

}

2.一个scanf小练习

/*

提示用户输入两个整数,计算并且输出两个整数的和

*/

#include

int main()

{

// 1.定义2个变量,保存用户输入的整数

int num1, num2;

// 2.提示用户输入第1个整数

printf("请输入第1个整数:\n");

// 3.接收用户输入的第1个整数

scanf("%d", &num1);

// 4.提示用户输入第2个整数

printf("请输入第2个整数:\n");

// 5.接收用户输入的第2个整数

scanf("%d", &num2);

// 6.计算和,并且输出

int sum = num1 + num2;

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

//printf("num1=%d, num2=%d\n", num1, num2);

return 0;

}

3.scanf的一些其他用法和注意的地方

#include

int main()

{

/* 1.输入字符

char myc;

scanf("%c", &myc);

printf("输入的字符是%c\n", myc);

*/

/* 2.一次性输入多个数值,并且以某些符号隔开

int num1, num2;

scanf("%d#%d", &num1, &num2);

printf("num1=%d, num2=%d\n", num1, num2);

*/

/*

3.如果scanf参数中以空格隔开,实际输入可以以空格、tab、回车作为分隔符

int num1, num2;

scanf("%d %d", &num1, &num2);

printf("num1=%d, num2=%d\n", num1, num2);

*/

/*

4.scanf中不能写\n

int a;

scanf("%d\n", &a); // 错误写法

printf("a的值是%d\n", a);

*/

return 0;

}

---算数运算符

1.算数运算符的基本使用

int a = 10 + 1 + 2 - 3 + 5;

int b = -10;

int c = 10 * b;

int d = 10 / 2;

2.取余运算(模运算): % 两边都是整数,%取余结果的正负性只跟%左边的数值有关,如:

int e = 10 % -3;

printf("%d\n", e); // 输出结果是1

3.数据类型的转换

1>自动类型转换(double->int)

int a = 10.8;

2> 强制类型转换(double->int)

int b = (int) 10.5;

printf("%d\n", a);

3>自动类型提升(int->double)

double c = 10.6 + 6;

double d = 1 / 3;

double e = (double)3/2;

printf("e的值是%f\n", e);

4.算数运算的一个小练习

/*

提示用户输入一个时间的秒数,比如500秒就输入500,然后输出对应的分钟和秒,比如500s就是8分钟20秒

*/

int main()

{

/*

// 将c的值固定在10以内

int a = 96546546;

int c = a % 10;

*/

// 1.提示用户输入时间

printf("请输入一个时间值(秒):\n");

// 2.接收用户输入的时间

int time;

scanf("%d", &time);

// 3.转换成对应的分钟和秒

int minute = time / 60; // 分钟

int second = time % 60; // 秒

printf("%d秒 = %d分钟%d秒\n", time, minute, second);

return 0;

}

---复合赋值运算符、自增自减和关键字sizeof 1.复合赋值运算符

a += 5; // a = a + 5;

a *= 5; // a = a * 5;

a += 5 + 6 + 4; // a = a + (5 + 6 + 4);

2.自增自减

a++ 数值上就等于 a += 1 等于 a = a + 1

a++和++a的不同:a++在运算过程中先把a 的值进入运算再做自增;++a在运算过程中先自增再把a 的值进入运算。(自减运算和自增一样)

自增小练习:

/*下面代码打印结果是____12,7______(需要写上分析思路)*/

//1.包含stdio.h头文件

#include

//2.主函数main,argc表示参数个数,argv存放参数 ,两个参数是给读入命令行参数的

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

{

//3.定义整形变量 b

int b;

//4.定义整形变量a并赋予初值5

int a = 5;

//5.计算 (++a) + (a++)的值并赋予给 b

b = (++a) + (a++);

//6.输出 b 和 a 的值

printf("b=%d, a=%d\n", b, a);

//7.函数正常退出

return 0;

}

/*思路分析 : main函数后面的(int argc, const char * argv[])在此程序中可以不予理会

mian中定义了整形变量 b 和初值为 5 的 a ,在运行 b = (++a) + (a++) 时需要明白:

(++a)先做完加 1 运算 a 再参与到 (++a) + (a++)中, (a++)是先将a 参与到 (++a) + (a++)中再做加 1 运算 。 所以在运行 b = (++a) + (a++)时, a做加1运算变为了6 ,所以 (++a)

的值为6; (a++)的值为6,但a的值已经变为了7。 所以此时 b = 6 + 6 = 12,a的值为7输出b,a两值为 12 和 7.*/

3.关键字sizeof():返回数据的所占字节数

int main()

{

//int size = sizeof(10);

//int size = sizeof 10.9;

int a = 10;

//int size = sizeof(a);

//int size = sizeof a;

int size = sizeof(char);

// int size = sizeof char; // 错误的,字符型数据必须加括号

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

return 0;

}

---关系运算符

先计算运算符优先级高的运算,优先级一样的情况下,运算从左往右进行。(运算符优先顺序不要求记,有免费的优先级运算表)

int a = 10,b = 11;

// 条件成立就返回1,真

// 条件不成立就返回0,假

int result = b >= a;

---逻辑运算符

1.逻辑与:“条件A&&条件B”:当两边同时成立的时候返回1.当第一个条件不成立的时候第二个条件不读取。

//逻辑与 条件1 && 条件2

// int a  =  10>3 && 7<6; // a = 0

//int a = 0 && 10; // a = 0

{

/*

int a = 10;

int b = 10;

//int c = (a>5) && (++b>=11);  // c = 1

int c = (a<5) && (++b>=11);  //  c = 0

}

2.逻辑或:“条件1||条件2”:当两边只要有一个成立的时候就返回1,并且当第一个条件成立的时候第二个条件不读取。

// 逻辑或 条件1 || 条件2

//int a = 0 || 11; // a = 1

int a = 10;

int b = 10;

int c = (a<5) || (b++ - 10); // c = 0

3.逻辑非:!条件。如果条件成立就返回0,如果条件不成立就返回1

// 逻辑非 !条件

//int a = !(10>8); // a = 0

//int a = !-10; // a = 0

//int a = !10>8; // a = 0

//int a = !!10; // a = 1

---三目运算符

条件 ? 数值1 : 数值2,,,如果条件成立返回数值1如果不成立返回数值2.

/*求a、b、c三者的最大值*/

// 求出a、b的最大值

int abMax = (a > b) ? a : b;

// 求出最终的最大值

int d = (abMax > c) ? abMax : c;

---选择结构

1.if的第一种结构

if(条件)

{语句1;

语句2;

.......

}

如果满足条件执行大括号里面的代码段

2.if的第二种结构

if(条件)

{语句1;

语句2;

.......

}

else{语句;.....    }

如果满足条件执行大括号里面的代码段,不满足条件执行   else里面的代码段

3.if的第三种结构

if(条件1)

{语句1;

语句2;

.......

}

else    if(条件2)

{语句1;

语句2;

.......

}

else    if(条件3)

{语句1;

语句2;

.......

}

else{语句;.....    }

执行满足条件的大括号内的代码段

4.if的第四种结构

if(条件)

语句1;

语句2;

满足条件只执行语句1.

5.if语句的一些注意事项:比较大小时,常量值放左边,变量放右边:if (0 == a)

6.注意赋值运算符,不要写成两个=;注意不要在if语句后面加“;”。

7.下面代码是错误的:作用域不明确

if(10>6)

int a = 5;

8.如果要在if后面的语句中定义新的变量,必须用大括号{  },并且作用域只在其大括号的里面

9.if结构三种方法的练习(并比较其性能):

/*

输入一个整数score代表分数,根据分数输出等级(A-E)(用两种方式)

A:90~100

B:80~89

C:70~79

D:60~69

E:0~60

*/

#include

int main()

{

// 1.提示输入

printf("请输入分数值:\n");

// 2.接收输入

int score;

scanf("%d", &score);

// 3.判断等级 (性能最高)

if (score>=90 && score<=100) { // [90, 100]

printf("A\n");

} else if (score>=80) { // [80, 89]

printf("B\n");

} else if (score>=70) { // [70, 79]

printf("C\n");

} else if (score>=60) { // [60, 69]

printf("D\n");

} else { // (-∞, 59]

printf("E\n");

}

/* 性能中等

if (score>=90 && score<=100) { // [90, 100]

printf("A\n");

} else if (score>=80 && score<=89) { // [80, 89]

printf("B\n");

} else if (score>=70 && score<=79) { // [70, 79]

printf("C\n");

} else if (score>=60 && score<=69) { // [60, 69]

printf("D\n");

} else { // (-∞, 59]

printf("E\n");

}*/

/* 性能最差

if (score>=90 && score<=100) { // [90, 100]

printf("A\n");

}

if (score>=80 && score<=89) { // [80, 89]

printf("B\n");

}

if (score>=70 && score<=79) { // [70, 79]

printf("C\n");

}

if (score>=60 && score<=69) { // [60, 69]

printf("D\n");

}

if (score<=59) { // (-∞, 59]

printf("E\n");

}*/

return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值