11.7 晚自习 规定n的范围[a,b]、定义max函数以及回文数的判断

发布于 14 天前  15 次阅读


#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>

int main() {
	int n;
	n = a;
	while (n >= a && n <= b) 
		sth;
		}
	return 0;
}

第一,你定义n=a,这个非常正确(肯定有a<b),同时你后面的判断语句可以简化成n<=b,这看起来就更加简洁了


返回两个数中最大值的函数,我定义为max函数,你写的代码看着简单吗?

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>

int max(int x,int y) {
	int z = x > y ? x : y;
	return 0;
}

嘿,伙计。这上面的应该比你想的更简单!

这利用了三元运算符(强调先是问号然后是冒号),它不需要用到逗号和分号

这里再提个醒,今天上午的练习记错了的地方

第一个,fgets是stdio.h里的函数,不需要额外加头文件

第二个,fgets第二个位置你可以考虑sizeof函数

第三个,fgets第三个位置是stdin而不是stdlib(这是一个头文件名称)

第四个,再怎么样他都是一个函数,fgets每个位置之间都是用逗号而不是分号不是for循环这种特例!!!再说,for不是函数,而是一个控制结构,也即控制语句)


判断是不是回文数,你也真是逆天啊

你居然想利用字符串来一个一个对比,先不说麻不麻烦,这要耗费多少时间啊!

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>

int hui(int x) {
	int r = 0;//必须得初始化为0,因为下面用的时候得从0开始
	//r,即reversed,意思是“使反转”
	int or = x;//o,即original,意思是“起初的”
	//作用是复制变量x参与运算,不让x的值发生改变
	int remainder;//意思是“余数”
	while (or != 0) {
		remainder = or % 10;
		r = r * 10 + remainder;//这是核心
		or /= 10;
	}
	if (r == x) {
		return 1;
	}
	else {
		return 0;
	}//“添加标志”
}

从始至终,我们定义了三个变量

最值得学习的是or!=0,你应该值得的是,如果是一个较大的数对一个较小取模,那它的值就是较小的那个数,所以你完全不用担心最后的一个数(原先的最高位数)都成了0

届ける言葉を今は育ててる
最后更新于 2024-11-07