关于判断回文的c语言程序,我用string语句写了下,运行后发现无论输入啥输出都是b

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于判断回文的c语言程序,我用string语句写了下,运行后发现无论输入啥输出都是b相关的知识,希望对你有一定的参考价值。

#include<stdio.h>
#include<string.h>
int main(void)

char ch[80];
char *p[80];
int i,n=0;
while ((ch[n] = getchar()) != '\n')
n++;
ch[n] = '\0';
for(i=0;i<n;i++)

p[i] = &ch[i];

i = 0;
n = n - 1;
while (i < n)
if (strcmp(p[i], p[n]) != 0)
break;
i++;
n--;


if (i >= n)
printf("a");
else
printf("b");

return 0;

请问该怎么改才能正确输出?

判断回文用不到字符串库函数,是单个单个字符处理的,简单修改如下:

DEV-CPP 5.4 纯C环境,通过编译和初步测试

#include<stdio.h>
int main(void)
char ch[80];
int i,n=0;
while ((ch[n] = getchar()) != '\\n')
n++;
i = 0;
n = n - 1;
while (i < n) 
if (ch[i]!= ch[n])
      break;
i++;
n--;

if (i >= n)
printf("a");
else
printf("b");
return 0;

 也不需要用什么指针...

追问

我是按书上的改编过来的,现在我想为什么用strcmp语句不行呢

追答

strcmp函数用来判断两个字符串的大小,而判断回文数是依次判断两头的字符是否相同,完全没有必要用字符串来处理,强行用会使简单的问题变得复杂。

追问

谢谢你的帮助

参考技术A #include<stdio.h>
#include<string.h>
int main(void)

char ch[80];
char *p[80];
int i,n=0;
while ((ch[n] = getchar()) != '\\n')
n++;
ch[n] = '\\0';
for(i=0;i<n;i++)

p[i] = &ch[i];

i = 0;
n = n - 1;
while (i < n) 
if (*p[i]!=*p[n])//<===================
      break;
i++;
n--;


if (i >= n)
printf("a");
else
printf("b");

return 0;

追问

这样还是有问题

追答

具体描述问题,以及提供输入样例

Java判断回文语句的程序(可变参数,String转化为char数组)

static void Huiwen(char... cs){     //char... cs  支持可变参数格式为

//(类型名... 变量名)--形参列表,相当于建立了一个长度可变的动态数组,系统根据用户需求来确定数组的长度
int b_ool=1;

for(int i=0;i<cs.length/2;i++)    //length为这个可变数组的长度,注意此时长度为数组下表加1,通过cs.length-i-1可知
if(cs[i]!=cs[cs.length-i-1      // 判断
]){
b_ool=0;break;}                      

if(b_ool==1)
JOptionPane.showMessageDialog(null,
"你输入的是一个回文语句!");
else
JOptionPane.showMessageDialog(null,
"你输入的不是一个回文语句!");
}

public static void main(String[] args){
String enterChar=JOptionPane.showInputDialog(null,
"请输入一个语句:");

char[] ca=enterChar.toCharArray();   //String转化为char数组
Huiwen(ca);                  //调用
}

以上是关于关于判断回文的c语言程序,我用string语句写了下,运行后发现无论输入啥输出都是b的主要内容,如果未能解决你的问题,请参考以下文章

C语言 关于判断回文数的程序

Java判断回文语句的程序(可变参数,String转化为char数组)

C语言判断结婚问题

C语言10个数字判断问题

C语言输入一个数n,输出n以内所有的回文素数.回文素数,即是素数,又是回文数

c语言,利用递归判断回文