我刚学c不久,请问怎样编写一个程序判断一个数是对称的,比如12321
我刚学c不久,请问怎样编写一个程序判断一个数是对称的,比如12321
2006-11-21 11:11
2006-11-21 11:36
这个是针对五位数的,如果用itoa(),atoi()函数,就简单得多
#include<stdio.h>
main()
{
int m;
int a,b,c,d;
printf("input a five-digit number:");
scanf("%d",&m);
a = m/10000;
b = m%10000/1000;
c = m%100/10;
d = m%10;
if (a == d && b == c)
printf("this number is symentry!");
else
printf("this isn't a symentry number");
return 0;
}

2006-11-21 11:42
我认为把它定义成一个字符串!!!!!!!!!!!!!
在用两个指针对他们进行前后扫描!!!!!!!!!!!
分别比较他们的大小!!!!!!!!!!!!!!
在用一个判断语句!!!!!!如果不等就输出(NO)
定义一个指针也可以实现!!!!!!!!!!!!
如有疑问就与我Q谈!!!!!!!!!!1
(QQ304239467)最好以邮件求助!!!!!!!!!!!
因为我很忙!!!!!!!!!!!11
2006-11-21 13:04
#include<stdio.h>
void main()
{
long a;
int n=0,i=0,x,arr[20];
printf("请输入一个整数:");
scanf("%ld",&a);
do{
arr[n]=a%10; //把这个数以及除10后对10取模分别求出每一位放在一个数组
n++; //注意此时n的值是比元素下标大1
a/=10; //除于10后拿去取模
}while(a!=0); //直到这个数为0
for(i=0;i<n;i++)
{
if(arr[i]!=arr[n-1-i]) //如果数组里a[0]==a[n-1]那么继续比较 一但出现不等就说明不是回文了
x=0; //不等时让x=0;用于以后判断
}
if(x==0)
printf("不是回文数!\n");
else
printf("是回文数!\n");
}
希望大家给点意见 C没学多少时间

2006-11-21 20:23
5楼
在开始定义x时最好给它赋一值(int x=1);如果不赋值,x是系统自动赋的任意值(可能是0,当然是0的几率也比较小).
2006-11-21 22:20