c语言测试题,求大神
展开全部
模糊,我看到,题目要输入5位数,判断是否是回文字。
题目是要输入int型数字还是直接输入char型。
我两种都写了,你参考吧。
#include <stdio.h>
#include <malloc.h>
#include <string.h>
#define SIZE 5//数最大位数
int isHW(char *str);//判断一个SIZE位数的字符串型数字是否是回文字,是返回0,否返回1
char *int2Str(int n);//将一个int型SIZE位整数转换成字符串型SIZE位数(超出SIZE位数的数字只取最后SIZE位)
int main()
{
char str[SIZE+1];
int num,n;
n=2;
while(n--)
{
printf("请输入一个数字(int型,不超过%d位):",SIZE);
scanf("%d",&num);
printf("%s\n",isHW(int2Str(num))?"是回文数":"不是回文数");
}
n=2;
while(n--)
{
printf("请输入一个数字(字符型,不超过%d位):",SIZE);
scanf("%s",str);
printf("%s\n",isHW(str)?"是回文数":"不是回文数");
}
return 0;
}
int isHW(char *str)//判断一个SIZE位数的字符串型数字是否是回文字,是返回0,否返回1
{
int len=strlen(str);
char *p0=str,*p1=&str[len-1];
while(p0<p1)
{
if(*p0!=*p1)
return 0;
p0++;
p1--;
}
return 1;
}
char *int2Str(int n)//将一个int型SIZE位整数转换成字符串型SIZE位数(超出SIZE位数的数字只取最后SIZE位)
{
int i,j,p10=1;
char *str=(char *)malloc(sizeof(char)*(SIZE+1));
for(i=0;i<SIZE;i++)
{
if(n/p10==0)
break;
p10=1;
for(j=SIZE-i;j>1;j--)
p10*=10;
str[i]=n/p10%10+'0';
}
str[i]=0;
return str;
}
展开全部
还是先把图标照清楚点吧,根本就看不清
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询