C语言题目2个,求高手帮忙解答,谢谢了!
1、从键盘上输入一个正整数,判断其是否为回文数.所谓回文数是指顺序读与反序读都是一样的数,如121、25852都是回文数。2、从键盘上输入两个字符串,若不相等,将短的字符...
1、从键盘上输入一个正整数,判断其是否为回文数.所谓回文数是指顺序读与反序读都是一样的数,如121、25852都是回文数。
2、从键盘上输入两个字符串,若不相等,将短的字符串连接到长的字符串的末尾并输出新的字符串。 展开
2、从键盘上输入两个字符串,若不相等,将短的字符串连接到长的字符串的末尾并输出新的字符串。 展开
3个回答
展开全部
测试结果:【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");
}
判断回文数,请输入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");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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;
}
#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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
本人也是初学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.
#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();
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询