C语言中仅使用循环的回文
我使用了以下代码..但我正在寻找合适的条件来放置。请帮我解决一下C语言中仅使用循环的回文,c,loops,palindrome,C,Loops,Palindrome,我使用了以下代码..但我正在寻找合适的条件来放置。请帮我解决一下 int main(){ int k = 0; char a[9] = {'\0'}, b[9] = {'\0'}; printf("enter string \n"); gets(a); int p = strlen(a); for(int i = p-1; i >= 0; i--){ b[k] = a[i]; k = k+1; }
int main(){
int k = 0;
char a[9] = {'\0'}, b[9] = {'\0'};
printf("enter string \n");
gets(a);
int p = strlen(a);
for(int i = p-1; i >= 0; i--){
b[k] = a[i];
k = k+1;
}
for(int j = 0; j < p; j++){
if(a[j] == b[j]){
continue;
}else
printf("not pal");
break;
}
return 0;
}
intmain(){
int k=0;
字符a[9]={'\0'},b[9]={'\0'};
printf(“输入字符串\n”);
获得(a);
int p=斯特伦(a);
对于(int i=p-1;i>=0;i--){
b[k]=a[i];
k=k+1;
}
对于(int j=0;j
对于(int j=0;j这里是代码
int main(){
int k=0, flag;
char a[9]={'\0'},b[9]={'\0'};
printf("enter string \n");
gets(a);
int p = strlen(a);
for(int i=p-1;i>=0;i--){
b[k]=a[i];
k=k+1;
}
for(int j=0;j<p;j++){
if(a[j]==b[j]){
flag=0;
}else
flag=1;
break;
}
if(flag==0)
printf("yes");
else
printf("no");
return 0;
}
intmain(){
int k=0,标志;
字符a[9]={'\0'},b[9]={'\0'};
printf(“输入字符串\n”);
获得(a);
int p=斯特伦(a);
对于(int i=p-1;i>=0;i--){
b[k]=a[i];
k=k+1;
}
对于(int j=0;j无需复制字符串。下面的代码使用整个字符串的大小来复制镜像字母并检查是否相等。复杂性为O(N/2)
(如果存在此情况):-p
#include <stdbool.h>
#include <stddef.h>
#include <stdio.h>
#include <string.h>
bool is_palindrome(const char* s)
{
const size_t len = strlen(s);
size_t i=0;
while(i<len/2-1)
{
if(s[i] != s[len-i-1])
return false;
++i;
}
return true;
}
int main()
{
const char* s1 = "palindrome";
const char* s2 = "palindromemordnilap";
if(is_palindrome(s1))
printf("uhoh");
if(is_palindrome(s2))
printf("yay!");
}
#包括
#包括
#包括
#包括
bool是回文(const char*s)
{
const size_t len=strlen(s);
尺寸i=0;
while(我你所说的适当条件是什么意思?
?我认为我做得对。但不知道当两个字符串匹配时该怎么办..你有一个严重的堆栈溢出问题(哦,讽刺的是)@user2980181在这种情况下,最好通过设置标志
来跟踪,然后根据标志打印回文的是和否value@user2980181当前位置你可以用1个循环来做家庭作业,不需要复制。小建议,在写表达式时,不要吝啬于使用空格。替他做家庭作业对他没有帮助从长远来看,我很抱歉。我要删除这个答案吗?@claptrap:这里有“以身作则”是的,我认为解释是更合适的教学方法。@KaustavRay不。不需要删除答案。只需添加一些解释,说明您添加了什么以及为什么和答案是什么lacked@user2980181通常,当人们受到这种人为的约束时,是因为他们的老师“聪明”不管是不是家庭作业,这都不是重点,最好的学习方法是这样做,继续做好工作。我不太擅长指点,这就是为什么我没有这样做的原因。但是,谢谢buddy@user2980181这里没有真正的指针。这只是通过[]以数组的形式访问字符串< C/> >,在C++中与一个正确的<代码> STD::String 和运算符[]/COD>相似。
#include <stdbool.h>
#include <stddef.h>
#include <stdio.h>
#include <string.h>
bool is_palindrome(const char* s)
{
const size_t len = strlen(s);
size_t i=0;
while(i<len/2-1)
{
if(s[i] != s[len-i-1])
return false;
++i;
}
return true;
}
int main()
{
const char* s1 = "palindrome";
const char* s2 = "palindromemordnilap";
if(is_palindrome(s1))
printf("uhoh");
if(is_palindrome(s2))
printf("yay!");
}