【C/C++基础复习】科学计数法;printf常用输出;运算易错点;for循环中的break和contiune;善用条件运算符;if语句用嵌套;最大公因数数最小公倍数、找水仙花数;判断回文数

 

🍉内容专栏:【C/C++要打好基础啊】

🍉本文脉络:1.科学计数法,printf常用输出;2.运算易错点;3.for循环的break和contiune;4.善用条件运算符;5.if语句用嵌套来优化(注意看注释!!);6.最大公因数最小公倍数   7.找100~999的水仙花数(注意个位十位百位怎么找)8.判断一个数是不是回文数

🍉本文作者:Melon_西西

🍉发布时间 :2023.1.27


目录

1.科学计数法

printf输出常用规则:

2.易错运算

3.for循环中的break和contiune

4.条件运算符:

eg.1:计算一个数是不是3和7的倍数:

 eg.2:两个数比较大小

eg.3:是不是闰年

eg.4:三个数比较大小

5.if语句用嵌套来优化(注意看注释!!)

6.最大公因数最小公倍数

7.找100~999的水仙花数

(注意个位十位百位怎么找)

8.判断一个数c是不是回文数


1.科学计数法

e后面如果是整数就是10的n次方,负数就是0.1的n次方
    float f2 = 3e2;//3*10^2;
    float f3 = 3e-2;//3^0,1^2

printf输出常用规则:

2.易错运算

加减乘除运算+-*/   除数不可以是0
int两个整数相除结果是整数舍去小数部分
double两个小数相除结果可以是小数
%取模运算:只取余数 两个小数不可以

布尔运算,整数除了0都是ture都是1


前置后置递增递减:
 ++m1  n1++;
这两种都是让变量加1
区别:前置是先让变量+1然后进行表达式运算
           后置是先进行表达式运算,后让变量+1

 int m2 = 10;
    int n2 = ++m2 * 10;
    cout << "m2=" << m2 << endl;//11
    cout << "n2=" << n2 << endl;//110
    int m3 = 10;
    int n3 = m3++ * 10;
    cout << "m3=" << m3 << endl;//11
    cout << "n3=" << n3 << endl;//100

混合运算时,会把不同类型的数据转化成同一类型(较高精度的)

float→double  char,shoprt→int→unsigned→long→double


优先级比较:|| &&低于关系,!高于算数,()改变优先级
百度搜索运算符优先级表
逻辑运算符的短路性(优化):
从左至右运算:(|| &&为左结合,!为右结合)
当能确定逻辑表达式的值时,立即结束运算
int q = -1, w = 0, e = -1, r=0;
	r = q++ || ++w && ++e;
	cout << "r=" << r << endl;//r=1
	q = -1, w = 0, e = -1, r=0;
	r = q++ || ++w || e;
	cout << "r=" << r << endl;//r=1
	q = -1, w = 0, e = -1, r=0;
	r = q++ || ++w && ++e;
	cout << "r=" << r << endl;  //r=1
	
	int qq = -1, ww = 0, ee = -1, rr=0;
	r = q++ | ++w & ++e;
	cout << "rr=" << rr << endl;  //rr=0
	qq = -1, ww = 0, ee = -1, rr;
	rr = qq++ | ++ww | ee;
	cout << "rr=" << rr << endl;  //rr=-1
	qq = -1, ww = 0, ee = -1, rr;
	rr = qq++ | ++ww & ++ee;
	cout << "rr=" << rr << endl;  //rr=-1

3.for循环中的break和contiune

 int i8 = 0, sum8 = 0;
    for (i8 = 0; i8 <= 100; i8++)
    {
        if (i8 == 50)
            break;
        sum8 += i8;
    }
    cout << sum8 << endl;//sum8只加了1~49,结果是1225
    int i9 = 0, sum9 = 0;
    for (i9 = 0; i9 <= 100; i9++)
    {
        if (i9 == 50)
            continue;
        sum9 += i9;
    }
    cout << sum9 << endl;//上述结果sum9==5000,没有加50

4.条件运算符:

eg.1:计算一个数是不是3和7的倍数:

 int n = 0; cin >> n;
     (n / 3 == 0 && n / 7 == 0)  ?  cout <<  "能"  :  cout <<  "不能"  ;

也可以嵌套使用:

cin >> n;

n % 3 == 0) ?

((n % 5 == 0) ? cout << "yes" : cout << "no")

: cout << "no";

 eg.2:两个数比较大小

    int a = 0, b = 0; cin >> a >> b;
     ( a  >  b )  ?  cout   <<   a   :   cout  <<  b  ;

eg.3:是不是闰年

   int year = 0; cin >> year;
     ((year % 4 == 0) && (year % 100 != 0) || year % 400 == 0) ?
         cout << "是闰年" :  cout << "不是闰年";

eg.4:三个数比较大小

    int a=0, b=0, c=0, m=0;
     cout << "请输入三个数比较大小" << endl;
     cin >> a >> b >> c;
     m = a;
     if (b > m) m = b;
     if (c > m) m = c;
     cout << m << "最大" << endl;

5.if语句用嵌套来优化(注意看注释!!)

	cout << "输入分数判断等级,嵌套的写法" << endl;
	int fenshu2=0;
	char grade = 'Z';  //对grade初始化,随便赋一个值就可以
	cout << "输入分数:";
	cin >> fenshu2;
	if (fenshu2 < 60 || fenshu2>100)
	{
		cout << "无效分数"; return;
	}
	if (fenshu2 >= 60)
	{
		if (fenshu2 >= 70)
		{
			if (fenshu2 >= 80)
			{
				if (fenshu2 >= 90) grade = 'A';
				else grade = 'B';  //这里一定记得要有个对80~90区间的讨论,没有的话这里是空的
			}
			else  grade = 'C';
		}
		else grade =  'D';
	}
	else grade = 'E';
	cout << grade << endl;

6.最大公因数最小公倍数

	{
    cout << "求两个整数的最大公约数和最小公倍数" << endl;
	int n;
	int a = 0, b = 0;
	cin >> a >> b;
	int big = 0, small = 0;
	big = (a > b) ? a : b;
	small = a + b - big;
	n = small;
	while (n)
	{
		if ((a % n == 0) && (b % n == 0))
		{
			break;
		}
		n--;
	}
	int gongbeishu = a * b / n;
	cout << "最大公因数是" << n << endl;
	cout << "最小公倍数是" << gongbeishu << endl;
    }

7.找100~999的水仙花数

(注意个位十位百位怎么找)

{
    int g = 0, s = 0, b = 0;
	for (int i = 100; i <= 999; i++)
	{
		g = i % 10;       //个位数=数字除以10的余数
		s = i / 10 % 10;   //十位数先/10得到百位十位组成的两位数再取余数得十位数
		b = i / 100;      //百位数直接/100可以得到
	if (i == g * g * g + s * s * s + b * b * b)
		cout << i << " ";
	}
}

8.判断一个数c是不是回文数

    {
    int a = 0, b = 0, c = 0;
    cout <<  "请输入一个数字";
    cin >> c;
    a = c;
    while (a)
    {
        b = b * 10 + a % 10;
        a /= 10;
    }
    (c == b) ?  cout << c << "是回文数"  : cout << c << "不是回文数";
    }

写在最后:

博主大一学识尚浅,内容仅供参考,欢迎大家在评论区和我交流分享!

以后会经常发有趣的小游戏,和学习心得,感兴趣的小伙伴可以点个关注支持一下

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值