c语言运算符

#include <stdio.h>

void main() {

	double d1 = 10 / 4;
	double d2 = 10.0 / 4;//如果希望保留小数,参与运算数必须有浮点数

	//给大家一个取模的公式
	//a % b =  a - a / b * b

	int res1 = 10 % 3; // 求10/3 的余数 1
	int res2 = -10 % 3; // = -10 - (-10) / 3 * 3 = -10- (-3) * 3 = -10 + 9 = -1
	int res3 = 10 % -3; // 10 - 10 / (-3) * (-3) =  10 - 9 = 1
	int res4 = -10 % -3; // ? -1


	printf("d1 = %f", d1);//2.000000
	printf("\nd2 = %f", d2);//2.500000

	//++ 的使用

	int i = 10;
	int j = i++; // 运算规则等价是 int j = i; i = i + 1; ==> j = 10, i=11
	int k = ++i; // 运算规则等价  i = i + 1; int k = i; ===> i=12, k =12

	printf("\n i=%d j=%d", i, j); //i=12   j=10
	printf("\n i=%d k=%d", i ,k );// i = 12 k = 12
	printf("\nd1=%f d2=%f res1=%d res2=%d res3=%d res4=%d", d1, d2, res1, res2, res3, res4); //
	
	//++ 或者 -- 还可以独立使用, 就相当于自增
	//k++ 等价于  k = k +1
	//++k 等价于 k= k +1
	//如果独立使用  ++k 和 k++ 完全等价
	k++; // k = 13
	++k;// k = 14
	printf("\nk=%d", k); //k = 14

	getchar();
}
#include <stdio.h>

void main() {

	//假如还有97天放假,问:xx个星期零xx天

	//思路
	//1. 定义一个 days 保存 天数
	//2. 定义 week 保存 计算得到星期
	//3. 定义 leftDays 保存 剩余的天数
	//4  使用 % 和  /


	//代码
	int days = 97;
	int week = days / 7; 
	int leftDays = days % 7;

	/*
	定义一个变量保存华氏温度,华氏温度转换摄氏温度的公式为:
	5/9*(华氏温度-100),请求出华氏温度对应的摄氏温度

	思路
	1. 用 huaShi 华氏温度
	2. 用 sheShi 摄氏温度
	3. 使用公式来进行转换 5/9*(华氏温度-100)
	*/

	double huaShi = 146.7;
	double sheShi =  5.0/9*(huaShi-100);

	printf("华氏温度 %.2f 对应的摄氏温度是 %.2f", huaShi, sheShi);
	printf("\n\n有 %d个星期零%d天 放假", week, leftDays);
	getchar();
}
  • 关系运算符
#include <stdio.h>

void main() {
	int a = 8;
	int b = 7;
	printf("\na>b=%d", a > b); // 1
	printf("\na>=b=%d", a >= b); // 1
	printf("\na<b=%d", a < b); //0
	printf("\na<=b=%d", a <= b);//0
	printf("\na==b=%d", a == b);//0
	printf("\na!=b=%d", a != b);//1

	
	getchar();
}
  • 逻辑运算符

        在进行 && 操作时, 如果第一个条件为false ,则后面的条件不在判断

        在进行逻辑或时,如果第一个条件为真,则不再执行后面的条件,整个结果为真

#include <stdio.h>
void main() {
	
	double score = 70;//成绩
	if(score>=60 && score<=80){
		printf("ok1");
	} else {
		printf("ok2");
	}

	int a = 10, b = 99;
	//说明:
	//1. 在进行 && 操作时, 如果第一个条件为false ,则后面的条件不在判断
	//2. 该现象称为 短路现象,所以 逻辑与 也称为 短路逻辑与
	if(a < 2 && ++b>99) {  
		printf("ok100");
	}
	printf("b=%d\n", b); //b=99
	getchar();


	int a = 10, b = 99;
	//说明
	//1. 在进行逻辑与时,如果第一个条件为真,则不再执行后面的条件,整个结果为真
	//2. 该现象称为 逻辑或短路现象,因此 逻辑或也称为 短路逻辑或
	if(a > 5 || b++>100) { // 
		printf("ok100");
	}
	printf("b=%d\n", b); // b= 99
	getchar();

	//int score = 100;
	//int res = score > 199;   // res = 0
	//if(res) {
	//	printf("hello, tom\n");
	//}
	//if(!res) { //T
	//	printf("hello,jack\n");
	//}

	getchar();

}

当出现提示this function or variable may be unsafe,则可以将scanf替换为scanf_s,很有可能没有警告,但是会出现函数没法用的情况,此时可以加上一句

#define _CRT_SECURE_NO_WARNINGS

下题是例子

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

void main() {

	//使用一个字符数组接收名字
	char name[10] = "";
	int age = 0;
	double salary = 0.0;
	char gender = ' ';

	//提示用户输入信息
	printf("请输入名字:");
	//表示接收一个字符串存放到name数组中
	scanf("%s", name);

	printf("请输入年龄:");
	scanf("%d", &age); // 因为我们将得到输入存放到 age 变量指向地址,因此需要加 & 

	printf("请输入薪水:");
	scanf("%lf", &salary); //接收一个double 时,格式参数 %lf

	printf("请输入性别(m/f):");
	scanf("%c", &gender); //这里是接收到了上面的回车字符
	scanf("%c", &gender); //等待用户输入.
	//输出得到信息
	printf("\nname %s age %d sal %.2f gender %c", name, age, salary, gender);

	getchar();//接收到一个回车

	getchar();//这个getchar() 才会让控制台暂停
}
  • 进制

        二进制ob开头

        八进制0开头

        十六进制0x/0X开头

  • 进制转换

单双分支课堂练习

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

void main() {

	//判断两数之和,如果大于50,则输出
	/*int a = 0;
	int b = 0;
	printf("请输入第一个数字:");
	scanf("%d", &a);

	printf("\n请输入第二个数字:");
	scanf("%d", &b);

	if (a + b > 50) {
		printf("hello,world");
	}
	getchar();*/

	//声明两个double型变量并赋值,判断第一个数字大于10.0,第二个数字小于20.0,则打印两数之和
	//double a = 0.0;
	//double b = 0.0;
	//printf("请输入第一个数字:");
	//scanf("%lf", &a);//接收一个double时,使用lf格式

	//printf("\n请输入第二个数字:");
	//scanf("%lf", &b);
	//
	//if (a > 10.0) {
	//	if (b < 20.0) {
	//		printf("a+b=%.1f", a + b);
	//	}
	//}
	//getchar();

	//定义两个变量int,判断二者的和,是否既能被3整除,又能被5整除,打印提示信息
	/*int a = 0;
	int b = 0;
	printf("请输入第一个数字:");
	scanf("%d", &a);

	printf("\n请输入第二个数字:");
	scanf("%d", &b);

	if ((a + b) % 3 == 0 && (a + b) % 5 == 0) {
		printf("a+b=%d既能被3整除,又能被5整除",a+b);
	}
	getchar();*/

	//判断一个年份是否是闰年,闰年的条件是年份能被4整除,但不能被100整除,能被400整除
	int year = 0;
	printf("请输入年份:");
	scanf("%d", &year);

	if (year % 4 == 0 && year % 100 != 0||year % 400 == 0) {
		printf("%d年是闰年", year);
	}
}
  • 多分支结构
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

void main() {
	double score = 0.0;
	printf("请输入岳小鹏的C二级考试成绩:");
	scanf("%lf", &score);

	if (score == 100) {
		printf("奖励一台宝马");
	}
	else if (score>80){
		printf("奖励一部苹果手机");
	}
	else if (score >= 60) {
		printf("奖励一个ipad");
	}
	else {
		printf("什么奖励都没有");
	}
	getchar();//得到的回车
	getchar();//控制台暂停
}
  • 求解二次方程是否有解
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<math.h>

//求的是二次元方程是否有解
void main() {
	double a = 0;
	double b = 0;
	double c = 0;
	printf("请输入a的值:");
	scanf("%lf", &a);
	printf("请输入b的值:");
	scanf("%lf", &b);
	printf("请输入c的值:");
	scanf("%lf", &c);

	double z = b * b - 4 * a * c;

	double x1 = 0;
	double x2 = 0;

	if (z >= 0) {
		x1 = -b + sqrt(z) / 2*a;
		x2 = -b - sqrt(z) / 2*a;
		printf("方程的两个解分别为:%.lf,%.lf", x1, x2);
	}
	else {
		printf("方程无解");
	}
	getchar();
	getchar();
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

void main() {
	int height = 0;
	double wealth = 0.0;
	int handsome = 0;

	printf("请输入身高(cm):");
	scanf("%d", &height);

	printf("请输入财富(百万):");
	scanf("%lf", &wealth);

	printf("请输入是否帅气(1/0):");
	scanf("%d", &handsome);

	if (height >= 180 && wealth > 10 && handsome == 1) {
		printf("我一定要嫁给他");
	}
	else if (height >= 180 || wealth > 10 || handsome == 1) {
		printf("嫁吧,比上不足,比下有余");
	}
	else {
		printf("不嫁");
	}
	getchar();
	getchar();
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

//参加百米运动会,如果用时8秒以内进入决赛,否则提示淘汰。并且根据性别提示进入男子组或女子组。
void main() {
	double time = 0.0;
	char gender = ' ';

	printf("请输入百米运动会成绩(s):");
	scanf("%lf", &time);

	if (time < 8) {
		printf("请输入同学性别(m/f):");
		scanf("%c", &gender);//接收到上次回车
		scanf("%c", &gender);
		
		if (gender == 'f') {
			printf("进入女子组决赛");
		}
		else {
			printf("进入男子组决赛");
		}
	}
	else {
		printf("淘汰");
	}

	getchar();
	getchar();
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

void main() {
	int month = 0;
	int age = 0;
	double price = 60.0;

	printf("请输入当前月份(1-12):");
	scanf("%d", &month);

	if (month >= 4 && month <= 10) {
		printf("请输入购票人年龄(>0):");
		scanf("%d", &age);

		if (age < 18) {
			printf("您的购票价格为%.1f元",price/2);
		}
		else if (age <= 60) {
			printf("您的购票价格为%.1f元",price);
		}
		else {
			printf("您的股票价格为%.1f元",price/3);
		}
	}
	else {
		printf("请输入购票人年龄(>0):");
		scanf("%d", &age);

		if (age < 18 || age > 60) {
			printf("您的购票价格为20元");
		}
		else {
			printf("您的购票价格为40元");
		}

	}

	getchar();
	getchar();
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

	/*
	案例:
	请编写一个程序,该程序可以接收一个字符,比如: a,b,c,d,e,f,g
	a表示星期一,b表示星期
	二 …  根据用户的输入显
	示相依的信息.要求使用
	switch 语句完成

	*/
void main() {

	char c1 = ' ';
	printf("请输入一个字符(a,b,c,d):");
	scanf("%c", &c1);

	switch (c1) {
	case 'a':  
		printf("今天星期一, 猴子穿新衣");
		break; 
	case 'b' : 
		printf("今天星期二, 猴子当小二");
		break;
	case 'c' : 
		printf("今天星期三, 猴子爬雪山");
		break;
	case 'd' : 
		printf("今天星期四, 猴子有急事");
		break;
	default : //default 是可选择,不是必须的
		printf("没有匹配到任何值~");

	}
	printf("\nswitch 结束~");
	getchar();
	getchar();
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值