判断数据/10000是否等于数据%10,并且(数据%10000)/1000是否等于 (数据%100)/10如果这两个条件都满足,则是对称数,否则不是。
#include "stdio.h"//
void main(void){
int nDec
printf("请输入一个十进制五位整数...\nnDec=")
for(){
zhiscanf("%d",&nDec)
if(nDec>9999 &&nDec<100000) break
printf("错了!请输入10000~99999间的整数...\nnDec=")
}
printf("%d",nDec)
if((nDec%10000)/1000!=(nDec%100)/10 || nDec/10000!=nDec%10) printf("不")
printf("是对称数!\n")
}
扩展资料:
C语言包含的各种控制语句仅有9种,关键字也只有32 个,程序的编写要求不严格且以小写字母为主,对许多不必要的部分进行了精简。实际上,语句构成与硬件有关联的较少,且C语言本身不提供与硬件相关的输入输出、文件管理等功能,如需此类功能,需要通过配合编译系统所支持的各类库进行编程,故c语言拥有非常简洁的编译系统。
参考资料来源:百度百科-c语言
大致的思路是把这是数最低位变成最高位最高位变成最低位
就这样变换
变形后的数字和原来的数相等就是对称数了。
例子:判断252是不是对称数
#include <stdio.h>int main(void)
{
int n1 = 252
int n = n1
int an = 0
int i
while(n){
i = n % 10
n = n - i
n /= 10
an *= 10
an += i
}
if(an == n1){
printf("%d是对称数字", n1)
}else{
printf("%d不是对称数字", n1)
}
}
这个问题是算法有点绕了。 了解这个问题的算法 和程序的执行顺序用的你大脑运行一遍这个程序你就会明白了。 这个方法对00012321 这样的前面有0的数字组合不适用
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)