做了一个自己找错的题目

今天找不到昨天做的那个题目实在那个地方了,认真找了。。 

但今天做了一个自己找错的题目,其实就是在很多地方插入printf,哈哈哈哈,这个办法很好用!

题目如下,用了两个循环。

 

您的问题中提到"我的有错吗",但我没有看到您提供的代码或具体法。为了帮助您检查错误,请先提供您写的C语言代码。 不过我可以先为您分析正确的解题思路和常见错误点: # 题目重述 找出指定范围 [a, b] 内的所有自守数。自守数是指其平方数的低位部分恰好等于该数本身的自然数。例如:25² = 625,因此25是自守数。(注:0和1也算自守数) 输入:两个正整数 a 和 b(a < b < 10000) 输出:按从小到大顺序输出 [a,b] 区间内所有自守数,每行一个;若不存在则输出 None # 正确的解决方案 ```c #include <stdio.h> int isAutomorphic(int n) { int square = n * n; int temp = n; while (temp > 0) { if (square % 10 != temp % 10) { return 0; } square /= 10; temp /= 10; } return 1; } int main() { int a, b; int found = 0; scanf("%d %d", &a, &b); for (int i = a; i <= b; i++) { if (isAutomorphic(i)) { printf("%d\n", i); found = 1; } } if (!found) { printf("None\n"); } return 0; } ``` # 常见错误分析 ⚠️ **常见错误1:位数比较逻辑错误** ```c // 错误示例 if (n*n % 10 == n) { // 只比较个位 ``` → 应该逐位比较直到原数的所有位都被比较完 ⚠️ **常见错误2:未处理"None"情况** → 必须使用标志变量记录是否找到了自守数 ⚠️ **常见错误3:输出格式错误** → 每个自守数占一行,最后要有换行符 请将您写的代码发给我,我会帮您具体分析哪里出错了!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值