/*定义一个一维数组,任意输入十个数,输出其中的回文数,并输出所有回文数之和*/
#include<stdio.h>
#define N 5
main(){
int a[N],b[10];//数组a为输入的整数 数组b为存储每个整数的位数
int i,k=0;//i为数组a的循环变量,k为数组b的循环变量
int count,num=0; //count为判断数组a内回文数的循环变量 ,num为判断回文数的钥匙
int sum=0; //sum是回文数的总和
for(i=0;i<N;i++)
scanf("%d",&a[i]);//输入整数
for(i=0;i<N;i++){//循环数组a内的每个整数
int c=a[i];//定义一个变量将a内的值赋值(方便将a内的每个值给数组b)
for(k=0;c%10>0;k++){//将a中的每一次的每个值的 位数给数组b
b[k]=c%10;
c=c/10;
}
printf("\n");
num=0; //计数b与a内的值相等
c=a[i];//再令a给c
for(count=k-1;count>=0;count--){//循环判断相反的位数和正序的位数是否相等
if(b[count]==c%10)
num++; //num++
else
num=0;
c=c/10;
//printf("s%d\n",num);
}
if(num==k){//当num的值等于数组b的长度时说明,他们的位数正反读者相同,是回文数
sum+=a[i];
printf("%d是回文数 ",a[i]);
}
else{
printf("\n%d不是回文数",a[i]);
}
}
printf("\n回文数和:\n");
printf("%d",sum);
}
该C语言程序通过输入一个整数数组,判断其中哪些数是回文数(正序和反序读取数字位数相同),并计算所有回文数之和。
1208






