C语言题目2个,求高手帮忙解答,谢谢了!

1、从键盘上输入一个正整数,判断其是否为回文数.所谓回文数是指顺序读与反序读都是一样的数,如121、25852都是回文数。2、从键盘上输入两个字符串,若不相等,将短的字符... 1、从键盘上输入一个正整数,判断其是否为回文数.所谓回文数是指顺序读与反序读都是一样的数,如121、25852都是回文数。

2、从键盘上输入两个字符串,若不相等,将短的字符串连接到长的字符串的末尾并输出新的字符串。
展开
 我来答
Negamax
2012-04-25 · TA获得超过2722个赞
知道小有建树答主
回答量:656
采纳率:100%
帮助的人:288万
展开全部
测试结果:【2个用独立函数写的,用一个程序实现】
判断回文数,请输入n:
123321
是回文数
请输入2个字符串!
Louzhu
Hello
LouzhuHello
请按任意键继续. . .

正确的代码:
#include "stdio.h"
#include "stdlib.h"
#include "string.h"

int isHuiWen(int n)
{
int sum=0;
int temp=n;
while(n!=0)
{
sum=sum*10+n%10;
n=n/10;
}
if(sum==temp)
{
return 1;
}
else
{
return 0;
}
}

int strProcess(char a[],char b[])
{
if(strcmp(a,b)!=0)
{
if(strlen(a)>=strlen(b))
{
strcat(a,b);
return 1;
}
else
{
strcat(b,a);
return 2;
}
}
return 0;
}

main()
{
int n=0;
char s1[100],s2[100];
printf("判断回文数,请输入n:\n");
scanf("%d",&n);
if(isHuiWen(n))
printf("是回文数\n");
else
printf("不是回文数\n");

printf("请输入2个字符串!\n");
scanf("%s",s1);
fflush(stdin);
scanf("%s",s2);
int k=strProcess(s1,s2);
if(k==0)
{
printf("字符串相等:\n");

}
else if(k==1)
{
printf("%s",s1);
}
else
{
printf("%s",s2);
}
system("pause");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hs_lzz
2012-04-25
知道答主
回答量:14
采纳率:0%
帮助的人:15.5万
展开全部
1、判断回文数
  #include<stdio.h>
  int x,y;
  judge(int * data,int len)
  {
  int i,j,f=0;
  for(i=0,j=len-1; i<=j; i++,j--)
  {
  if(*(data+i)!=*(data+j))
  {
  f=1; printf("%d 不是回文!!!\n",x); break;
  }
  }
  if(f==0)
  printf("%d 是回文 !\n",x);
  }
  separate(int *data,int n)
  {
  int j,k,t;
  y=0;
  while(n!=0)
  {
  *(data+y)=n%10; n=n/10; y++;
  }
  *(data+y)='\0';
  for(j=0,k=y-1; j<=k; j++,k--)
  {
  t=*(data+j); *(data+j)=*(data+k); *(data+k)=t;
  }
  }
  void main()
  {
  int a[99];
  printf("请输入一个正整数:");
  scanf("%d",&x);
  separate(a,x);
  judge(a,y);
  }
2、比较并连接字符串
#include<stdio.h>
int main(void)
{
char str1[256] = {0};
char str2[256] = {0};
char str3[512] = {0};
printf("Please input two strings:str1 str2\n");
scanf("%s %s", str1, str2);
printf("now-------\nstr1:%s\nstr2:%s\n", str1, str2);
int ret = -1;
ret = strcmp(str1, str2);
printf("ret= %d\n", ret);
if (ret>0)
{
sprintf(str3, "%s%s", str1, str2);
}else if (ret<0)
{
sprintf(str3, "%s%s", str2, str1);
}else{
sprintf(str3, "%s", str1);
}
printf("new string:%s\n",str3);
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我抛锚起航
推荐于2016-12-01
知道答主
回答量:17
采纳率:0%
帮助的人:13.2万
展开全部
本人也是初学C语言,写得不够简练,见谅
1.
#include<stdio.h>
#include<string.h>
main()
{
char a[200],*p=a,*q;
int n,i;
gets(a);
n=strlen(a);
q=&a[n-1];
for(;p<q;p++,q--)
if(*p!=*q) {i=0; break;}
else i=1;
switch(i)
{
case 0:printf("该数不是一个回文数"); break;
case 1:printf("该数是一个回文数"); break;
}
getch();
}

2.
#include<stdio.h>
#include<string.h>
main()
{
char a[200],b[200];
int i,j;
gets(a); gets(b);
i=strlen(a);
j=strlen(b);
if(i==j)
printf("长度相同");
else if(i>j)
{strcat(a,b); puts(a);}
else
{strcat(b,a); puts(b);}
getch();

}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式