Tag: 回文

调用函数时char数组和char *数组之间的区别?

我想知道为什么这个代码与char tab[100]工作正常,但如果我使用char *tab不起作用? fgets函数将char*数组作为参数对吗? #include #include #include Int Palindrome(char* str, int i, int j); int main() { char tab[100]; printf(“Enter your string : \n”); fgets(tab, 100, stdin); int j = strlen(tab); printf(“%d\n”, Palindrome(tab, 0, j – 2)); return 0; } int Palindrome(char* str, int i, int j) { if (i >= j) { printf(“My word […]

在C编程中设置限制循环和计算回文

因此,此代码的目标是将用户编号转换为回文。 如果数字不是回文数,则计算数字+反转数,直到它成为回文数。 如果仍然不是回文,请取最后一个数字的总和,然后将它们加在一起,最多加10次。 int main() { int n; int reverse = 0; //initial value will be 0 int temp; //temporary variable //Check if number is a palindrome=============================== printf(“Enter an integer: “); scanf_s(“%d”, &n); temp = n; //Make input number have a temporary variable while (temp != 0) { reverse = reverse * 10; reverse = […]

C程序,以查找数字是否是回文

我做了一个C程序来检查一个数字是否是回文。 我使用了以下代码,但它显示了像12321这样的数字作为非回文。 你能解释一下下面程序中的错误吗? #include int main() { int i, x, n, c, j; int d=0; printf (“enter total digits in number: “); scanf (“%d”, &i); printf (“\nenter number: “); scanf (“%d”, &n); j=n; for (x=1; x<=i; x++) { c= j%10; d=c*(10^(ix))+d; j=(jc)/10; } if (d==n) { printf ("\npalindrome"); } else { printf ("\nnon palindrome"); } […]

找到两个三位数字产品的最大回文问题

所以在Project Euler上, 问题4陈述如下: 回文数字读取两种方式相同。 由两个2位数字的乘积制成的最大回文是9009 = 91 99。 找到由两个3位数字的乘积制成的最大回文。 我尝试过以下方法: #include #include int check(int result) { char b[7]; sprintf(b, “%d”, result); if (b[0] == b[5] && b[1] == b[4] && b[2] == b[3]) { return 1; } else { return 0; } } int main () { int i; int g; int final; for (i […]

C的回文计划

我在C中的程序是Palindrome,其function有误。 我的function是不比较我的字符串中的2个字符。 当我输入单个字符时,它会回答回文,但如果它是两个或更多,则总是不回文。 码: int IntStrlength=strlen(StrWord); int IntCtr2=0; int IntCtr=1, IntAnswer; while(IntCtr<=(IntStrlength/2)){ printf(" %d %d\n", IntCtr2,IntStrlength); if(StrWord[IntStrlength] != StrWord[IntCtr2]){ IntAnswer=0; printf(" %d=Not Palindrome", IntAnswer); exit (0); }//if(StrWord[IntCtr2]!=StrWord[IntStrlength]) <——— else{ IntCtr2++; IntStrlength–; }// else <——– IntCtr++; }//while(IntCtr<IntStrlength/2) <———– IntAnswer=1; printf(" %d=Palindrome", IntAnswer); return ; } 单个字符: 两个或多个字符:

检查C中的字符串是否是回文结构

我有一个关于这个代码的问题,我正在写一个练习。 我要检查字符串是否是回文。 我无法更改函数的声明。函数只返回1,当所有字母都相同(如“aaaa”)但如果我用其他回文(如“anna”)收取句子,函数返回0,我无法弄清楚为什么会出现这种情况。谢谢! char* cargar (char*); int pali (char*); int main() { char*texto=NULL; texto=cargar(texto); int res=pali(texto); if(res==1){printf(“\nPalindrome”);} else printf(“\nNot palindrome”); return 0; } char* cargar (char*texto) { char letra; int i=0; texto=malloc(sizeof(char)); letra=getche(); *(texto+i)=letra; while(letra!=’\r’){ i++; texto=realloc(texto,(i+1)*sizeof(char)); letra=getche(); *(texto+i)=letra;} *(texto+i)=’\0′; return texto; } int pali (char* texto) { int i; for(i=0;*(texto+i)!=’\0′;i++){ }i–; if(i==0||i==1){return 1;} if(*texto==*(texto+i)){ […]

如何检查整数的二进制表示是否是回文?

如何检查整数的二进制表示是否是回文?