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

2024-11-20 17:37:09
推荐回答(3个)
回答1:

测试结果:【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");
}

回答2:

1、判断回文数
  #include
  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
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;
}

回答3:

本人也是初学C语言,写得不够简练,见谅
1.
#include
#include
main()
{
char a[200],*p=a,*q;
int n,i;
gets(a);
n=strlen(a);
q=&a[n-1];
for(;p if(*p!=*q) {i=0; break;}
else i=1;
switch(i)
{
case 0:printf("该数不是一个回文数"); break;
case 1:printf("该数是一个回文数"); break;
}
getch();
}

2.
#include
#include
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();

}