C语言经典1~30例(题目来自菜鸟教程)
题目来自菜鸟教程,所写内容,如有问题,还请见谅。
C练习实例1
-
题目:有1,2,3,4四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
-
代码展示:
#include<stdio.h>
int main()
{
int i,j,k;
printf("\n");
for(i=1;i<5;i++)
{
for(j=1;j<5;j++)
{
for (k=1;k<5;k++) //三重循环是为了找出所有的三位数
{ // 确保i、j、k三位互不相同
if (i!=k&&i!=j&&j!=k)
{
printf("%d,%d,%d\n",i,j,k);
}
}
}
}
}
- 运行结果:
1,2,3
1,2,4
1,3,2
1,3,4
1,4,2
1,4,3
2,1,3
2,1,4
2,3,1
2,3,4
2,4,1
2,4,3
3,1,2
3,1,4
3,2,1
3,2,4
3,4,1
3,4,2
4,1,2
4,1,3
4,2,1
4,2,3
4,3,1
4,3,2
C练习实例2
- 题目:企业发放的奖金根据利润提成。
利润(I)低于或等于10万元时,奖金可提10%;
利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;
20万到40万之间时,高于20万元的部分,可提成5%;
40万到60万之间时高于40万元的部分,可提成3%;
60万到100万之间时,高于60万元的部分,可提成1.5%;
高于100万元时,超过100万元的部分按1%提成。
从键盘输入当月利润I,求应发放奖金总数?
- 代码展示:
#include<stdio.h>
int main()
{
double i;
double bonus1,bonus2,bonus4,bonus6,bonus10,bonus;
printf("你的净利润是:\n");
scanf("%lf",&i);
bonus1=100000*0.1;
bonus2=bonus1+100000*0.075;
bonus4=bonus2+200000*0.05;
bonus6=bonus4+200000*0.03;
bonus10=bonus6+400000*0.015;
if(i<=100000) {
bonus=i*0.1;
} else if(i<=200000) {
bonus=bonus1+(i-100000)*0.075;
} else if(i<=400000) {
bonus=bonus2+(i-200000)*0.05;
} else if(i<=600000) {
bonus=bonus4+(i-400000)*0.03;
} else if(i<=1000000) {
bonus=bonus6+(i-600000)*0.015;
} else if(i>1000000) {
bonus=bonus10+(i-1000000)*0.01;
}
printf("提成为:bonus=%lf",bonus);
printf("\n");
}
- 运行结果:
C练习实例3
- 题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
假设该数为 x。 - 程序分析:
1、则:x + 100 = n2, x + 100 + 168 = m2
2、计算等式:m2 - n2 = (m + n)(m - n) = 168
3、设置: m + n = i,m - n = j,i * j =168,i 和 j 至少一个是偶数
4、可得: m = (i + j) / 2, n = (i - j) / 2,i 和 j 要么都是偶数,要么都是奇数。
5、从 3 和 4 推导可知道,i 与 j 均是大于等于 2 的偶数。
6、由于 i * j = 168, j>=2,则 1 < i < 168 / 2 + 1。
7、接下来将 i 的所有数字循环计算即可。
注:上面的6,7步,我不理解,所以代码和菜鸟教程上相同
- 代码展示:
#include <stdio.h>
int main (void)
{
int i, j, m, n, x;
for (i = 1; i < 168 / 2 + 1; i++)
{
if (168 % i == 0)
{
j = 168 / i;
if ( i > j && (i + j) % 2 == 0 && (i - j) % 2 == 0)
{
m = (i + j) / 2;
n = (i - j) / 2;
x = n * n - 100;
printf ("%d + 100 = %d * %d\n", x, n, n);
printf ("%d + 268 = %d * %d\n", x, m, m);
}
}
}
return 0;
}
- 运行结果:
-99 + 100 = 1 * 1
-99 + 268 = 13 * 13
21 + 100 = 11 * 11
21 + 268 = 17 * 17
261 + 100 = 19 * 19
261 + 268 = 23 * 23
1581 + 100 = 41 * 41
1581 + 268 = 43 * 43
C练习实例4
-
题目:输入某年某月某日,判断这一天是这一年的第几天?
-
代码展示:
// 闰年二月是29天,不是闰年 二月是28天
//1,3,5,7,8,10,12 31
//4,6,9,11 30
#include <stdio.h>
int main()
{
int year, month, day,sum=0,temp=0;
printf("请输入-年-月-日:>");
scanf("%d,%d,%d", &year, &month, &day);
switch (month)
{
case 1:
sum += day; break;
case 2:
sum = 31 + day; break;
case 3:
sum = 59 + day; break;
case 4:
sum = 90 + day; break;
case 5:
sum = 120 + day; break;
case 6:
sum = 151 + day; break;
case 7:
sum = 181 + day; break;
case 8:
sum = 212 + day; break;
case 9:
sum = 243 + day; break;
case 10:
sum = 273 + day; break;
case 11:
sum = 304 + day; break;
case 12:
sum = 334 + day; break;
}
if (((0 == year % 4) && (0 != year % 100)) || (0 == year % 400))
{
temp = 1;
return temp;
}
else
printf("\n%d不是闰年!\n",year);
if (temp == 1)
{
sum += 1;
}
printf("\n%d年%d月%d日是这一年的第%d天!\n", year, month, day, sum);
return 0;
}
- 运行结果:
C练习实例5
-
题目:输入三个整数x,y,z,请把这三个数由小到大输出。
-
代码展示:
#include <stdio.h>
int main()
{
int t,i, j, k;
printf("Enter there numbers:>");
scanf("%d,%d,%d", &i, &j, &k);
if (i > j)
{
t = i;
i = j;
j = t;
}
if (j > k)
{
t = j;
j = k;
k = t;
}
if (i > k)
{
t = i;
i = k;
k = t;
}
printf("%d,%d,%d",i,j,k);
}
- 运行结果:
输入:
1,6,3
输出:
1,3,6
C练习实例6
- 题目:用*号输出字母C的图案
- 代码展示:
#include <stdio.h>
int main()
{
printf("******\n");
printf("*\n");
printf("*\n");
printf("******\n");
return 0;
}
- 运行结果:
输出:
******
*
*
******
C练习实例7
-
题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful!
-
代码展示:
#include<stdio.h>
int main()
{
char a=176,b=219;
printf("%c%c%c%c%c\n",b,a,a,a,b);
printf("%c%c%c%c%c\n",a,b,a,b,a);
printf("%c%c%c%c%c\n",a,a,b,a,a);
printf("%c%c%c%c%c\n",a,b,a,b,a);
printf("%c%c%c%c%c\n",b,a,a,a,b);
return 0;
}
- 运行结果:
郑鞍?
佰佰?
鞍郑?
佰佰?
郑鞍?
VC6.0下出现中文乱码(原因+解决方法):
176的16进制是B0,219的16进制是DB,0xB0DB是"佰"字的内码,所以输出的就是"佰"了。
主要原因是文件信息的代码页不同,我们所使用的操作系统中文状态下的代码页,要显示扩展的ASCII码需要在437 OEM-美国这个下面显示,这样就可以显示出你所希望的。具体修改控制台的默认代码页步骤如下:
1.点击运行界面左上角标题栏图标【c:\】,选择默认值一项
2.修改默认代码页,936(ANSI/OEM-简体中文GBK)为437 OEM-美国
3、关闭后重新运行一下即可
但是我用的是VS,所以没法改。
C练习实例8
-
题目:输出99乘法口诀
-
代码展示:
#include <stdio.h>
int main()
{
int i, j,result;
for (i = 1; i <= 9; i++) //控制行数
{
for (j = 1; j <= i; j++) //控制列数
{
result = i * j;
printf("%d*%d=%-3d", i, j, result); //-3d的意思是左对齐,右边空三位。
}
printf("\n"); //每一行之后换行
}
return 0;
}
- 运行结果:
C练习实例9
- 题目:要求输出国际象棋棋盘
- 代码展示:
#include<stdio.h>
int main()
{
int i, j;
for (i = 0; i < 8; i++) //i控制行,一共有8行
{
for (j = 0; j < 8; j++) //j控制每行的格子数,也是一共有8个格子
{
if ((i + j) % 2 == 0)
printf("%c%c", 219, 219); //偶数格子位显示灰色格子
else
printf(" "); //奇数格子位显示黑色格子
}
printf("\n"); //输出八个格子后,换行
}
return 0;
}
- 运行结果:
上面是VS的运行结果
实际结果结果如下:
C练习实例10
-
题目:打印楼梯,同时在楼梯上方打印两个笑脸。
-
代码展示:
#include<stdio.h>
int main()
{
int i,j;
printf("\1\1\n"); /*输出两个笑脸*/
for(i=1;i<11;i++)
{
for(j=1;j<=i;j++)
printf("%c%c",219,219);
printf("\n");
}
return 0;
}//这道题和99乘法口诀很像
-
运行结果:
-
实际应该是:
-
程序分析:用 ASCII 1 来输出笑脸;用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。
如果出现乱码情况请参考【C 练习实例7】的解决方法。
下面一个是一张ASCLL码表照片:可知笑脸是ASCLL码非打印控制字符
C练习实例11
-
题目:古典问题(兔子生崽):有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?(输出前40个月即可)
-
代码展示:
- 运行结果:
C练习实例12
-
题目:判断 101 到 200 之间的素数。
-
代码展示:
#include <stdio.h>
#include <math.h>
bool isPrimel_1(int n)
{
int count = 0,i; //不用再定义n,不然会出现形参重定义
for (n = 101; n < 200; n++)
{
for (i = 2; i < n; i++) //两重循环是根据素数的定义写出来的
{
if (n % i == 0)
{
break;
}
}
if (i >= n)// 判断循环是否提前跳出,如果 j < i 说明在 2~j 之间, i 有可整除的数
{
count++;
printf("%d ", n);
if (count % 5 == 0) //用count 计数 ,这两行是来换行的 , 每五个数换一行
printf("\n");
}
}
return 0; //记得返回一个值,不然会报错
}
int main()
{
int n=101;
isPrimel_1(n);
return 0;
}
- 运行结果:
C练习实例13
-
题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数 本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
-
代码展示:
#include <stdio.h>
#include <math.h>
int main()
{
int i, a, b, c,d;
printf("请输入一个三位数:>\n");
scanf("%d",&i);
a = i % 10;
b = i / 10 % 10;
c = i / 100;
a = pow(a, 3);
b = pow(b, 3);
c = pow(c, 3);
if (i == (a + b + c))
printf("%d是水仙花数!", i);
else
printf("%d不是水仙花数!", i);
return 0;
}
- 运行结果:
C练习实例14
-
题目:将一个正整数分解质因数。例如:输入90,打印出90=233*5。
-
代码展示:
#include<stdio.h>
int main()
{
int n, i;
printf("\n请输入整数:\n");
scanf("%d", &n);
printf("%d = ", n);
for (i = 2; i <= n; i++)
{
while (n % i == 0)
{
printf("%d", i);
n /= i;
if (n != 1)
printf("*");
}
}
printf("\n");
return 0;
} //虽然已经调试过了,可还不是太明白
- 运行结果:
C练习实例15
-
题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
-
tip: (a>b)?a:b 这是条件运算符
-
代码展示:
#include <stdio.h>
int main()
{
int score;
char grate;
printf("Enter score:>\n");
scanf("%d", &score);
grate = (score >= 90) ?'A': ((score >= 60) ?'B' :'C');
printf("%c", grate);
return 0;
}
- 运行结果:
C练习实例16
-
题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
-
tips:求最大公约数和最小公倍数不仅仅有一种方法,最大公约数的求解方法有短除法,辗转相除法,更相减损法。
-
辗转相除法 个人理解就是,不断将较大数除以较小数所得余数,直到余数为零为止,此时较小数即为原始两数的最大公约数。
-
代码展示:
#include <stdio.h>
int main()
{
int a, b,temp;
printf("\nEnter two numbers:>\n");
scanf("%d,%d", &a, &b);
if (a > b)
{
temp = a;
a = b;
b = temp; //确保a是较小的
}
int c = a % b;
int d = a * b; //a*b/最小公倍数 == 最小公约数
while (c != 0)
{
a = b;
b = c;
c = a % b;
}
printf("这两个数的最大公约数为%d,最小公倍数为%d",b,d/b);
return 0;
}
- 运行结果:
- 更相减损法 查了一下,更相减损术概念
- 代码展示:
#include <stdio.h>
int main()
{
int a, b,c;
printf("请输入两个整数:>");
scanf("%d,%d",&a,&b);
c = a * b;
while (a != b)
{
if (a > b)
{
a = a - b;
}
if (b > a)
{
b = b - a;
}
}
printf("两数的最大公约数为%d\n", a);
printf("两数的最小公倍数为%d\n",c/a);
return 0;
}
- 运行结果:
- 短除法 即:先把每个数的因数找出来,然后再找出公因数,最后在公因数中找出最大公因数。后来,使用分解质因数法来分别分解两个数的因数,再进行运算。之后又演变为短除法。短除法运算方法是先用一个被除数除以能被它除尽的一个质数,以此类推,除到两个数的商是互质数为止。
- 代码展示:
#include <stdio.h>
int main()
{
int a, b,min;
int n = 0, m;
printf("\n请输入两个数:>\n");
scanf_s("%d,%d", &a, &b);
m = a * b;
min = (a < b) ? a : b;//三目运算符,把最小值赋予a;;
for (int i = 1; i <= a; i++)
{
if (a % i == 0 && b % i == 0)
n = i;
}
printf("两个数的最大公倍数为%d,最小公约数为%d\n",n,m/n);
}
- 运行结果:
tips:在运行短除法的代码时,出现了一个问题如下:
也就是错在红色横线上:
C练习实例17
-
题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
-
tips:int getchar() 是读取一个字符但返回的是int 类型的数值。
-
代码展示:
int main()
{
int letters=0, digits=0, spaces=0, others=0;
char c;
/*printf("请输入一些字母:>");
scanf("%c", &c);*/ //为什么错的呢?
printf("请输入一些字母:>");
while ((c=getchar())!= '\n')
{
if (c <= 'Z' && c >= 'A' || c >= 'a' && c <= 'z')
{
letters++;
}
else if (c <= '9' && c >= '0')
{
digits++;
}
else if (c == ' ')
{
spaces++;
}
else
{
others++;
}
}
printf("letters=%d, digits=%d, spaces=%d, others=%d\n", letters, digits, spaces, others);
return 0;
}
对以上问题进行解释,***在C语言中,string 是定义一个字符串,存储的是一段如“abcd”的数据,而且最后还有一个结束符’\0’;char 是定义一个字符,存储一个字符,占一个字节。***所以我
- 运行结果:
C练习实例18
-
题目:求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
-
代码展示:
- 运行结果:
C练习实例19
-
题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。
-
题目分析:本题分为两步,先找出一个数的所有因子,就和,再判断因子之和是否为这个数。
-
代码展示:
//代码错误
#include <stdio.h>
int main()
{
int sum = 0;
for (int j = 2; j <= 1000; j++)
{
for (int i = 1; i < j; i++)
{
if (j % i == 0)
{
sum += i;
}
if (j == sum)
{
printf("%d ", j);
sum = 0;
}
}
}
return 0;
}
- 运行结果:
tips:错误代码展示:
#include <stdio.h>
int main()
{
int sum=0;
for (int j = 2; j <=1000; j++)
{
for (int i = 2; i <= j; i++)
{
if(j%i==0)
sum += i;
}
if (j == sum)
printf("%d ",j);
}
return 0;
}
错误结果:
解释:0表示成功,-1表示出错并不是唯一的方案。这只是其中一种而已。
C练习实例20
- 题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
- 代码展示:
#include <stdio.h>
#define N 10
float Game (float h) //Game函数是来求10次落地时,在空中总共运动的路程s;
{
float s = 0;
h = 100; //注意不要把形参重定义了
for (int i = 1; i < N;i++)
{
s += h/2;
h = h/2;
}
printf("第10次反弹高度:>%f\n", h/2);
s =(s*2+100);
return s;
}
int main()
{
float x = 0;
float y = Game(x);
printf("第10次落地时,共经历的路程:>%f\n", y);
return 0;
}
- 运行结果:
C练习实例21
- 题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个
第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下
的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。 - 代码展示:
- 运行结果:
C练习实例22
- 题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。
- 代码展示:
- 运行结果:
C练习实例23
-
题目:打印出如下图案(菱形)
-
代码展示:
- 运行结果:
C练习实例24
- 题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。
- 代码展示:
- 运行结果:
C练习实例25
-
题目:求1+2!+3!+…+20!的和。
-
代码展示:
#include <stdio.h>
int main()
{
int x;
double y = 1, sum = 0;
printf("请输入x的值:>");
scanf("%d", &x);
for (int i = 1; i <= x; i++)
{
y = y * i;
sum = sum + y;
}
printf("sum = %lf\n", sum);
return 0;
}
- 运行结果:
上面 C语言实例25 代码是经过更改后的。实际上第一次运行结果比正确答案差的很离谱。我之前所写错误代码,如下: - 错误代码展示:
#include <stdio.h>
int main()
{
int x,y=1,sum=0;
printf("请输入x的值:>");
scanf("%d", &x);
for (int i = 1; i <= x; i++)
{
y = y * i;
sum = sum + y;
}
printf("sum = %d\n", sum);
return 0;
}
- 运行结果:
- 错误分析:从结果可以看出,是***变量sum和y的类型定义错误!!***要定义成 float 或 double 类型的,为什么?其实是int 类型包含的范围太小了,1+2!+3!+…+20!的和,远远超过int 类型的最大值;
- 知识点补充:
类型 | 范围 |
---|---|
int | (-2147483648,2147483647) |
long int | (-2147483648,2147483647) |
unsigned int | (0,4294967295) |
long | (-2147483648,2147483647) |
long long | (-9223372036854775808,9223372036854775807) |
unsigned long | (0,4294967295) |
char | (-128,127) |
unsigned char | (0,255) |
short | (-32768,32767) |
unsigned short | (0,65535) |
double | (2.22507e-308,1.79769e+308) |
long double | (2.22507e-308,1.79769e+308) |
float | (1.17549e-308,3.40282e+038) |
long float | (2.22507e-308,1.79769e+308) |
表格中有提到科学计数法,下面给大家举个例子:1e-6表示1乘以10的负6次方;1e+6表示1乘以10的6次方。(注意:e的前后都要有数字)
C练习实例26
- 题目:利用递归方法求5!。递归公式:fn=fn_1*4!
- 递归就是自身调用自己,把大问题化成小问题。
递归条件:1 存在限制条件,当满足这个限制条件的时候,递归便不在继续。2 每次递归调用之后,越来越接近这个限制条件。 - 代码展示:
#include<stdio.h>
int Fac(int n)
{
int sum = 1;
if (n == 1)
return 1;
else
{
sum = n * Fac(n - 1);
return sum;
}
}
int main()
{
int n;
printf("请输入整数n:>\n");
scanf("%d", &n);
int k = Fac(n);
printf("%d的阶乘为%d\n", n, k);
return 0;
}
- 运行结果:
C练习实例27
- 题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。
- 代码展示:
#include <stdio.h>
int F(int n)
{
int c;
if (n == 1)
{
c = getchar();
putchar(c);
}
else
{
c = getchar(); //以abcde顺序进去。
F(n - 1);
putchar(c); //以edcba顺序输出。
//F(n - 1); //以abcde顺序输出。
}
return c; //要有返回值。
}
int main()
{
printf("\n请输入字符串:>\n");
F(5);
return 0;
}
- 运行结果:
C练习实例28
- 题目:题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?
- 程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道第四人的岁数,依次类推,推到第一人(10岁),再往回推。
- 代码展示:
#include <stdio.h>
int F(int a)
{
int y=10;
if (a == 1)
{
return 10;
}
else
{
for (int i = 1; i < a; i++)
{
y = y + 2;
}
return y;
}
}
int main()
{
int a;
printf("请输入a的值:>");
scanf("%d", &a);
int y = F(a);
printf("第%d个人的年龄是%d\n", a,y);
return 0;
}
- 运行结果:
C练习实例29
- 题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
- 菜鸟教程实例29
- 代码展示:
#include <stdio.h>
int main()
{
int a, b, c, d, e, n;
printf("\n请输入一个不多于五位数的正整数:>\n");
scanf("%d", &n);
e = n % 10; //个位
d = n / 10 % 10; //十位
c = n / 100 % 10; //百位
b = n / 1000 % 10; //千位
a = n / 10000; //万位
if (a != 0)
{
printf("\n%d是五位数!%d的逆序为%d%d%d%d%d!\n", n, n, e, d, c, b,a);
}
else if (a == 0 && b != 0)
{
printf("\n%d是四位数!%d的逆序为%d%d%d%d\n",n,n,e,d,c,b);
}
else if (a == 0 && b == 0 && c != 0)
{
printf("\n%d是三位数! %d的逆序为%d%d%d!\n",n,n,e,d,c);
}
else if (a == 0 && b == 0 && c == 0 && d != 0)
{
printf("\n%d是两位数!%d的逆序为%d%d!\n",n,n,e,d);
}
else if(a==0&&b==0&&c==0&&d==0&&e!=0)
{
printf("\n%d是一位数!%d的逆序为%d!\n",n,n,e);
}
return 0;
}
其实菜鸟教程上写的很简单,相比菜鸟教程上的,我还是有些小疑问,比如else if(b!=0) 可以表示为四位数,仅满足b!=0,要是a!=0怎么弄?后来我又想了一下,感觉自己好傻呀,其实是输入进去是按位进去的,如321 那么就来到 (c!=0)这一步,所以,还是在写代码之前先想好,再动手,不然要写好多,显得好废。
- 运行结果:
C练习实例30
-
题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
-
代码展示:
#include <stdio.h>
int main()
{ //12321
int a, b, c, d, e,n;
printf("\n请输入一个五位数的整数:>");
scanf("%d", &n);
e = n % 10; //个位
d = n / 10 % 10; //十位
c = n / 100 % 10; //百位
b = n / 1000 % 10; //千位
a = n / 10000; //万位
if ((a * 10000 + b * 1000 + c * 100 + d * 10 + e) == n)
printf("\n家人们! %d是回文数嘞!\n", n);
else
printf("错误哦!不是回文数!");
return 0;
}
- 运行结果: