嗨,我是C语言的初学者,现在我的程序有两个问题,谢谢您的帮助。

#include<stdio.h>
int reverse (int x)

main()
{
    int x;
    int v,z,t,a,i=1;
    printf("enter your number:\n");
    scanf("%u",&x);
    t=x;
    while(t>0)
    {
        t=t/10;
        i++;
    }
    printf("%d\n",i-1);
    a=(i-1)%2;
    if(a=1)
    {
        x=x/10;
        z=x%10;
        v=10*(int reverse (int x))+z
        printf("%d",v);
        printf("%d",x);
    }
    else
        printf("%d",int reverse (int x));
}

int reverse(int x);
{
    if(x>=10)
        reverse(n/10);
    printf("%d",n%10);
    return;
}


         here are my errors:


[错误] C:\ Users \ Administrator \ Documents \ C-Free \ Temp \ Untitled5.cpp:3:错误:“ main”之前的预期初始化程序
[错误] C:\ Users \ Administrator \ Documents \ C-Free \ Temp \ Untitled5.cpp:26:错误:'{'令牌之前的预期unqualified-id

  my compiler is c free 5.0


谢谢

最佳答案

在函数原型定义中缺少分号

int reverse (int x);
                   ^




v=10*(int reverse (int x))+z


那不是函数的调用方式,你有这样的调用

v=10*(reverse(x))+z; //a missing semicolon here too




您的函数reverse()不返回任何内容。

int reverse(int x);
{
    if(x>=10)
        reverse(n/10);
    printf("%d",n%10);
    return;            //Return whatever int you want to here
}




请阅读一些不错的Basic C编程书。

08-16 23:13