大一C语言:想要编写一个函数将所输入的字符以相反顺序打印出来,但是我的程序跑不下去

img


我想要编写一个函数将所输入的字符以相反顺序打印出来,但是我的程序跑不下去


#include <stdio.h>
int main()
{
    int x;
    int result = 0;
    printf("请输入一个整数:");
    scanf("%d",&x); 
    while(x != 0) 
    { 
        result = result*10 + x%10; 
        x = x/10;
    } 
    printf("%d",result);
 
    printf("\n");  //换行
    return 0; 
}

试试这个

  • 去掉这个 * 号

    img

  • 下面op函数也有问题,p指向有问题等等,参考下面

img

参考如下:

#include<stdio.h>
#include <string.h>

char * op(char c[]);

int main()
{
    char x[20];
    gets(x);
    printf("%s", op(x));
    
}

char * op(char c[])
{
    int length, i = 0;
    length = strlen(c);
    char t[length], *p;
    while(length >= 0)
    {
        t[i++] = c[length - 1];
        length--;
    }
    p = t;
    return p;
} 


如有帮助,欢迎点赞+采纳哈!

img

帮你写了个中英文通用的程序,供参考,谢谢!

img

img

#include <stdio.h>
#include <wchar.h>
#include <locale.h>

wchar_t *revers(wchar_t *p)
{
    setlocale(LC_ALL, "zh-CN");
    size_t n = wcslen(p) - 1;
    wchar_t *ptr = &p[n];
    static wchar_t str[512], *p0;
    p0 = str;

    while (ptr >= p)
        *p0++ = *ptr--;
    *p0 = L'\0';

    return str;
}

int main(int argc, char *argv[])
{
    wchar_t s[512];
    fgetws(s, 512, stdin);
    wprintf(L"%ls", revers(s));

    return 0;
}