我很新的C.我真的不明白如何让指针正确。我知道它可以在不指针做,但我不得不使用它们
#include <stdio.h>
#include <stdlib.h>
void palindrome(int *n)
{
int ok=0,*p,*m;
m=n;
while(*n!=0)
{
*p=*p*10+*n%10;
*n=*n/10;
}
if (*m==*p) ok=1;
if (*m!=*p) ok=0;
if (ok==1)
printf("Number is palindrome.");
if (ok==0)
printf("Number is not palindrome");
}
int main()
{
int n;
printf("Give value to n: ");
scanf("%d",&n);
palindrome(n);
}
预期resut将是,例如,数字212是回文,数字312是不回文
下面是代码。我想你应该尝试和了解指针实际使用之前是如何工作的。我不想给你提供的代码,但因为你是新人,我提供一个工作代码。试着了解它是如何工作的,而不是仅仅复制粘贴此代码在任何你必须把。
#include <stdio.h>
#include <stdlib.h>
void palindrome(int *n)
{
int ok=0;
int *p = (int *)malloc(sizeof(int));
int *m = (int *)malloc(sizeof(int));
*p=0;
*m=*n;
while(*n!=0)
{
*p=*p*10+*n%10;
*n=*n/10;
}
if (*m==*p) ok=1;
if (*m!=*p) ok=0;
if (ok==1)
printf("Number is palindrome.");
if (ok==0)
printf("Number is not palindrome");
}
int main()
{
int n;
printf("Give value to n: ");
scanf("%d",&n);
palindrome(&n);
return 0;
}
@ arpit,阿格拉瓦尔
你忘了添加免费,在结束
void palindrome(int *n)
{
...
free(p);
free(m);
}