C++高手进!~十万火急!

2024年11月27日 15:49
有5个网友回答
网友(1):

//利用比较字符串字符是否相等来判断

#include
#include

int main() {

char p[100]; //接收输入
int length = 0;
int startIndex = 0;
int endIndex = 0;
int flag = 0; //用来判断是否非回文

scanf("%s",p); //输入

length = strlen(p);//获得字符串的长度

for (startIndex = 0, endIndex = length-1;
startIndex < length/2, endIndex >= length/2; endIndex--, startIndex++) {

if (length%2 == 0) { //偶数

if(p[startIndex] == p[endIndex])

continue;
else {
printf("%s: NO", p);
flag=1;
break;
}
} else {

if (endIndex != length/2) {

if(p[startIndex] == p[endIndex])

continue;
else {
printf("%s: NO", p);
flag=1;
break;
}

} else {

break;
}
}
}

if (flag == 0) {
printf("%s: YES", p);
}
return 0;
}

网友(2):

太简单了,建议用2个指针来做,首尾比较,有一个不符既输出no,否则输出yes

/****************************
-------------------------------------------------------结账啦 &*& 结账啦 *****************************/

********************************************
--------------------------------------------------------------- 最简代码
********************************************
#include
#include

using namespace std;

int main()
{
char* str= new char[100];
cin>>str;
char* p=str;
char* q=p+strlen( str )-1;

for ( ;p if ( *p!=*q ){
cout<<"NO"< exit(1);
}
}

cout<<"yes"<
return 0;
}

网友(3):

输入行字符串,判断是否为回文
如果是,打印YES;如果不是,打印NO;
程序如下:

#include"stdio.h"
#include"string.h"
#define n 50
void main()
{
int i;
char st1[n+1];
char *pst1,*pst2;
printf("please input a string:");
scanf("%s",st1);
pst1=st1;
pst2=st1;
while(*pst1!='\0')
pst1++;
i=0;
pst1--;
while(*pst1==*pst2 )
{

pst1--;
pst2++;
i++;
}
if(i==strlen(st1))
printf("yes\n");
else
printf("no\n");
}

网友(4):

#include
#include

/*
返回1回文
返回0不是回文
*/
int f(char* str)
{
int i = 0;
int nLen = strlen(str);
for(i=0; i < nLen/2; i++)
{
if(str[i] != str[nLen-1-i])
{
return 0;
}
}

return 1;
}

int main()
{
char str[1024];
scanf("%s", str);

if(f(str))
{
printf("YES!\n");
}
else
{
printf("NO!\n");
}

return 0;
}

网友(5):

# include
# include
int palindrome(char* s);
int main()
{
char str[100];
int cmp;int n;
cin>>n;
while(n--)
{
cin>>str;
cmp=palindrome(str);
(cmp==1)?(cout<<"YES!"< }
return 0;

}
int palindrome(char* s)
{
int len;
len=strlen(s);
for (int i=0;i < len/2;i++)
{
if (s[i]!=s[len-i-1])
return 0;
}
return 1;
}