//前提该数是5位数
#include <stdio.h>
int main()
{
int number;
int wan, qian, shi, ge;
scanf("%d", &number);
wan = number / 10000;
printf("wan=%d\n", wan);
qian = number / 1000 % 10;
printf("qian=%d\n", qian);
shi = number % 100 / 10;
printf("shi=%d\n", shi);
ge = number % 10;
printf("ge=%d\n", ge);
if(wan==ge && qian==shi){
printf("%d是回文数\n", number);
}else{
printf("%d不是回文数\n", number);
}
return 0;
}
学习到:
- 何为回文数
关于中位对称
eg:12321关于中位数3对称,12345654321关于中位数6对称 - scanf用法
- scanf的机制:从缓冲区获得数据,(1若缓冲区有数据,则获得一个后,把数据总缓冲区中清除;2若缓冲区没有数据,则程序在scanf处停止,等待用户从键盘键入数据)
- 空格字符:(space,回车,制表符)
- scanf对各类型(整型,字符,字符串)的使用
整型:1键入数据时,会忽略前面的空白字符;2默认分隔符是空白字符
字符:1键入数据时,不会忽略前面的空表字符;2没有默认的分隔字符;3所有的字符,包括空白字符都会当成有效输入字符
字符串:1键入数据时,会忽略前面的空白的字符;2默认分隔符是所有的空白字符;3c语言中没有字符串类型,使用字符数组表示字符串,因此所有的字符串都会在其后面自动加上结束标志符——'\0'
- '\0',以及'\0'算不算位数?
- 1当字符数组表示字符串时,则自动加上'\0',且算上位数
2当字符数组表示字符时,
若数组大小与字符一致,则不加'\0'
若数组大于字符数,则后面自动加上'\0',且算上位数
- 运算符优先级
下标()——单目&——算术%——关系==——逻辑!=——三目(条件)——赋值= - 逻辑与&&和逻辑或||的短路
逻辑与&&
形式:表达式1 && 表达式2
运算顺序:先表1后表2
运算逻辑:若表达式都为1,则整个表达式都为1
短路(为0的时候):若表达式1为0,则不用再计算表达式2,整个式子的结果为0
逻辑或||
形式:表达式1 || 表达式2
运算顺序:先表1后表2
运算逻辑:若表达式有一个为1,则整个表达式都为1
短路(为1的时候):若表达式1为1,则不用再计算表达式2,整个式子的结果为1