c语言改错,求大腿教教我

img

  1. if(n/10==0) 少了一个等于号
  2. numbers[convert(n,numbers)]少了参数numbers

修改如下: 1、n/10=0改为n/10 == 0

2、convert(n%10,numbers)改为convert(n/10,numbers)

3、numbers[pos] = '0'+n%10 改为 numbers[pos++] = '0' + n%10

4、在3所述行之上增加一行 numbers[pos++] = '+';

5、numbers[convert(n)] 改为 numbers[convert(n,numbers)]

int convert(int n,char numbers[])
{
    if(n/10==0)
    {
        numbers[0] = '0'+n;
        return 1;
    }
    else
    {
        int pos = convert(n/10,numbers);
        numbers[pos++] = '+';
        numbers[pos++] = '0' + n%10;
        return pos;
    }
}
void main()
{
    int n;
    char numbers[20];
    scanf("%d",&n);
    numbers[convert(n,numbers)] = 0;
    puts(numbers);
        return 0;
}

修改如下:

#include <stdio.h>
int convert(int n,char numbers[])
{
    if (n/10==0) //修改1:n/10=0 修改为n/10==0
    {
        numbers[0] = '0'+n;
        return 1;
    }else
    {
        int pos = convert(n/10,numbers); //修改2:n%10修改为n/10
        numbers[pos++] = '+'; //修改3 新增这一句
        numbers[pos++] = '0' + n%10; //修改4:numbers[pos] = '0' + n%10改为numbers[pos++] = '0' + n%10
        return pos;
    }
}

int main()
{
    int n;
    char number[20];
    scanf("%d",&n);
    number[convert(n,number)] = '\0';  //修改5:number[convert(n)] = '\0'修改为number[convert(n,number)] = '\0'
    puts(number);
    return 0;
};