-3

所以我得到这个转换问题 char 到 const char。我怎样才能让这个代码工作?请不要使用指针,因为我是新手,我对它们一无所知...谢谢:)

#include<stdio.h>
#include<string.h>
char a[50];
int power(char a) {
    int b;
    b=0;
    if(strlen(a)-b==0)
    return 0;
    else if(a[b]=='x'){
        return power(a,b+1)+1;
    }
    else{
        return power(a,b+1);
    }
    }

}
int main()
{
  scanf("%s",&a);
  printf("%d",power(a));
  return 0;
}
4

1 回答 1

1

power()应该采用一个数组(或一个指针,但您要求将它们排除在外,所以......)

并且b需要是一个参数,而不是一个总是0.

int power(char a[], int b) {
    if(strlen(a)-b==0)
      return 0;
    else if(a[b]=='x'){
        return power(a,b+1)+1;
    }
    else{
        return power(a,b+1);
    }
}

最后,您的scanf()调用不需要指向数组地址的指针:

int main()
{
  scanf("%s",a);
  printf("%d",power(a, 0));
  return 0;
}
于 2013-11-10T19:43:33.377 回答