❶ c语言判断字符串是否为回文
#include <stdio.h>
/*fun()函数:传入一个字符数组,如果是回文序列返回1,不是就返回0*/
int fun(char a[])
{
int i,j,n=0;
while(a[n]!='\0') n++; /*计算传入字符串(数组)长度*/
n--; /*跳出while循环时 a[n]='\0',故n--*/
for(i=0,j=n;i<j;i++,j--)
if(a[i]!=a[j]) break;
if(i>=j) return 1;
return 0;
}
int main()
{
char str[20];
puts("输入一个字符串:\n");
gets(str);
if(fun(str)) printf("%s 是回文序列\n",str);
else printf("%s 不是回文序列\n",str);
return 0;
}
❷ C语言编写一个程序,判断输入的一个字符串是否是回文。
源代码如下:
#include <stdio.h>
int main()
{
int n, reversedInteger = 0, remainder, originalInteger;
printf("输入一个整数: ");
scanf("%d", &n);
originalInteger = n;
// 翻转
while( n!=0 )
{
remainder = n%10;
reversedInteger = reversedInteger*10 + remainder;
n /= 10;
}
// 判断
if (originalInteger == reversedInteger)
printf("%d 是回文数。", originalInteger);
else
printf("%d 不是回文数。", originalInteger);
return 0;
}
(2)c语言字符串是回文吗扩展阅读
1、函数的返回值是通过函数中的return语句获取的。
2、函数值的类型。
3、如果函数值的类型和return语句中表达式的值不一样,则以函数类型为准。
4、如果调用函数中没有return语句,并不带回一个确定的用户需要的值,函数不是不带回值,而只是不带回有用的值,带回一个不确定的值。
❸ C语言,判断一个字符串是不是回文,不知道错在哪里,求解。
str2 是数组名,指向数组的地址,是常量,不可更改。所以这里错了:str2 = strrev(str1);
你可以用循环把值一个个的赋给str2.
❹ C语言 判断一个字符串是不是回文
while是找到字符串的末尾,'\n'是所有字符串的最后一个字符,for循环是用来判断是不会回文的。j是从第一个字符开始,i是从最后一个字符开始,比较完一个字符后,j++,i--,一旦发现某个地方首位是不相等的,则不是回文退出
❺ C语言 字符回文
/*1.假设称正读和反读都相同的字符序列为"回文",例如,"abcddcba"、 "qwerewq"是回文,"ashgash"不是回文。
是写一个算法判断读入的一个以'@'为结束符的字符序列是否为回文。*/
#include<stdio.h>
#include<malloc.h>
#define MAXSIZE 100
typedef char DataType;
typedef struct{
DataType data[MAXSIZE];
int top;
}SeqStack,*PseqStack;//定义一个线性表栈。
typedef struct {
DataType data[MAXSIZE];
int front,rear;
}SeqQueue,*PseqQueue;//定义一个线性表队。
PseqQueue Init_SeqQueue()
{
PseqQueue Q;
Q=(PseqQueue)malloc(sizeof(SeqQueue));
if(Q)
{
Q->front=0;
Q->rear=0;
}
return Q;
}//队列初始化.
PseqStack Init_SeqStack(void)
{
PseqStack S;
S=(PseqStack)malloc(sizeof(SeqStack));
if(S)
S->top=-1;
return(S);
}//初始化栈。
int Push_SeqStack(PseqStack S,DataType x)
{
if(S->top==MAXSIZE-1)
return (0);
else
{
S->top++;
S->data[S->top]=x;
return (1);
}
}//入栈。
int Empty_SeqStack(PseqStack S)
{
if(S->top==-1)
return(1);
else return (0);
}//判断是否栈空。
int Pop_SeqStack(PseqStack S,DataType *x)
{
if(Empty_SeqStack(S))
return (0);
else
{
*x=S->data[S->top];
S->top--;
return (1);
}
}//出栈。
int In_SeqQueue(PseqQueue Q,DataType x)
{
if((Q->rear+1)%MAXSIZE==Q->front)
{
printf("队满");
return (-1);
}
else
{
Q->rear=(Q->rear+1)%MAXSIZE;
Q->data[Q->rear]=x;
return 1;
}
}//入队。
int Empty_SeqQueue(PseqQueue Q)
{
if(Q&&Q->front==Q->rear)
return 1;
else return 0;
}//判断队空。
int Out_SeqQueue(PseqQueue Q,DataType *x)
{
if(Empty_SeqQueue(Q))
{
printf("队空");
return (-1);
}
else
{
Q->front=(Q->front+1)%MAXSIZE;
*x=Q->data[Q->front];
return 1;
}
}//出队。
int huiwen(char *ch)
{
char x,y;
int count;
PseqStack S;
PseqQueue Q;
S=Init_SeqStack();
Q=Init_SeqQueue();
while(*ch!='\0')
{
Push_SeqStack(S,*ch);
In_SeqQueue(Q,*ch);
ch++;
}
count=1;
while(!Empty_SeqStack(S)&&!Empty_SeqQueue(Q))
{
Pop_SeqStack(S,&x);
Out_SeqQueue(Q,&y);
if(x!=y)
{
count=0;
break;
}
}
if(count)
{
printf("是回文。\n");
return 1;
}
else
{
printf("不是回文。\n");
return 0;
}
}//主算法。
void main()
{
char ch[MAXSIZE];
printf("输入一个符串:");
gets(ch);
huiwen(ch);
}//主函数。
❻ c语言编程题 输入一字符串,判断该字符串是否为回文。
#include <stdio.h>
#include<stdlib.h>
int main()
{
char a[100];
int i=0,j=0;
printf("请输入字符串: ");
gets(a);
while(a[i]!='