我的idol叫阿中 发表于 2020-6-29 12:18:28

这跟小甲鱼老师打的一样但我显示有一个无法解析的外部命令?我用的vs2010,求助!!!

#include <stdio.h>
void main()
{
        void exchange(int *n,int *u,int *m);
        int *a,*b,*c,i,j,k;
       
        scanf("%d %d %d",&i,&j,&k);
        a=&i;
        b=&j;
        c=&k;
        exchange (a,b,c);
       
        printf("%d>%d>%d\n",i,j,k);
}

void exchange(int *n,int *u,int *m)
{
        void swap(int *p,int *q);
        if(*n<*u)
        {swap(n,u);}
        if(*n<*m)
        {swap(n,m);}
        if(*u<*m)
        {swap(u,m);}
       
}
void swap(int *p,int *q)
   
{
        int t;
        t=*p;
        *p=*q;
        *q=t;
}

小甲鱼的铁粉 发表于 2020-6-29 12:23:21

#include <stdio.h>
void swap(int *p,int *q)
void exchange(int *n,int *u,int *m)

void main()
{
      void exchange(int *n,int *u,int *m);
      int *a,*b,*c,i,j,k;
      
      scanf("%d %d %d",&i,&j,&k);
      a=&i;
      b=&j;
      c=&k;
      exchange (a,b,c);
      
      printf("%d>%d>%d\n",i,j,k);
}

void exchange(int *n,int *u,int *m)
{
      void swap(int *p,int *q);
      if(*n<*u)
      {swap(n,u);}
      if(*n<*m)
      {swap(n,m);}
      if(*u<*m)
      {swap(u,m);}
      
}
void swap(int *p,int *q)
   
{
      int t;
      t=*p;
      *p=*q;
      *q=t;
}



子函数需要提前声明

小甲鱼的铁粉 发表于 2020-6-29 12:25:03

抱歉,刚刚少了俩分号
#include <stdio.h>
void swap(int *p,int *q);
void exchange(int *n,int *u,int *m);

void main()
{
      void exchange(int *n,int *u,int *m);
      int *a,*b,*c,i,j,k;
      
      scanf("%d %d %d",&i,&j,&k);
      a=&i;
      b=&j;
      c=&k;
      exchange (a,b,c);
      
      printf("%d>%d>%d\n",i,j,k);
}

void exchange(int *n,int *u,int *m)
{
      void swap(int *p,int *q);
      if(*n<*u)
      {swap(n,u);}
      if(*n<*m)
      {swap(n,m);}
      if(*u<*m)
      {swap(u,m);}
      
}
void swap(int *p,int *q)
   
{
      int t;
      t=*p;
      *p=*q;
      *q=t;
}


永恒的蓝色梦想 发表于 2020-6-29 12:28:35

建议把函数提到前面去,这样就可以了:#include <stdio.h>


void swap(int* p, int* q)
{
    int t;
    t = *p;
    *p = *q;
    *q = t;
}


void exchange(int* n, int* u, int* m)
{
    if (*n < *u)
    {
      swap(n, u);
    }
    if (*n < *m)
    {
      swap(n, m);
    }
    if (*u < *m)
    {
      swap(u, m);
    }

}


int main()
{
    int* a, * b, * c, i, j, k;

    scanf("%d %d %d", &i, &j, &k);
    a = &i;
    b = &j;
    c = &k;
    exchange(a, b, c);

    printf("%d>%d>%d\n", i, j, k);
    return 0;
}还有 main 函数应该返回 0

我的idol叫阿中 发表于 2020-6-29 12:31:26

小甲鱼的铁粉 发表于 2020-6-29 12:25
抱歉,刚刚少了俩分号

好的谢谢谢谢啦

我的idol叫阿中 发表于 2020-6-29 12:32:13

永恒的蓝色梦想 发表于 2020-6-29 12:28
建议把函数提到前面去,这样就可以了:还有 main 函数应该返回 0

谢谢啦

我的idol叫阿中 发表于 2020-6-29 12:33:34

我的idol叫阿中 发表于 2020-6-29 12:31
好的谢谢谢谢啦

不不不,我弄了前面去还是显示无法解析啊,这是怎么回事

我的idol叫阿中 发表于 2020-6-29 12:37:32

永恒的蓝色梦想 发表于 2020-6-29 12:28
建议把函数提到前面去,这样就可以了:还有 main 函数应该返回 0

还是显示有个一无法解析的外部命令

我的idol叫阿中 发表于 2020-6-29 12:38:51

属实弄不明白了
求助求助呜呜

小甲鱼的铁粉 发表于 2020-6-29 12:47:23

我的idol叫阿中 发表于 2020-6-29 12:38
属实弄不明白了
求助求助呜呜

复制发一下报错的内容吧

我的idol叫阿中 发表于 2020-6-29 12:50:53

小甲鱼的铁粉 发表于 2020-6-29 12:47
复制发一下报错的内容吧

1>------ 已启动生成: 项目: 20.6.24, 配置: Debug Win32 ------
1>LINK : error LNK2001: 无法解析的外部符号 _mainCRTStartup
1>D:\c语言\20.6.24\Debug\20.6.24.exe : fatal error LNK1120: 1 个无法解析的外部命令
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
是这样的

小甲鱼的铁粉 发表于 2020-6-29 12:56:48

我的idol叫阿中 发表于 2020-6-29 12:50
1>------ 已启动生成: 项目: 20.6.24, 配置: Debug Win32 ------
1>LINK : error LNK2001: 无法解析的外 ...

#include <stdio.h>
#include<stdlib.h>
void swap(int *p,int *q);
void exchange(int *n,int *u,int *m);

int main()
{
      void exchange(int *n,int *u,int *m);
      int *a,*b,*c,i,j,k;
      
      scanf("%d %d %d",&i,&j,&k);
      a=&i;
      b=&j;
      c=&k;
      exchange (a,b,c);
      
      printf("%d>%d>%d\n",i,j,k);
      system("pause");
      return 0;


}

void exchange(int *n,int *u,int *m)
{
      void swap(int *p,int *q);
      if(*n<*u)
      {swap(n,u);}
      if(*n<*m)
      {swap(n,m);}
      if(*u<*m)
      {swap(u,m);}
      
}
void swap(int *p,int *q)
   
{
      int t;
      t=*p;
      *p=*q;
      *q=t;
}


这样试试

小甲鱼的铁粉 发表于 2020-6-29 12:59:29

用int main()行不

我的idol叫阿中 发表于 2020-6-29 13:02:16

小甲鱼的铁粉 发表于 2020-6-29 12:59
用int main()行不

也是不行,

jhanker 发表于 2020-6-29 13:49:34

本帖最后由 jhanker 于 2020-6-29 13:52 编辑

我看代码是没什么问题吧
文件名改一下,新建一个文件 文件名最好简单点 重新编译
输入数据的时候 各数字之间加个空格
比如输入 2 3 4
结果 4>3>2

我的idol叫阿中 发表于 2020-6-29 15:14:29

jhanker 发表于 2020-6-29 13:49
我看代码是没什么问题吧
文件名改一下,新建一个文件 文件名最好简单点 重新编译
输入数据的时候 各数字 ...

好的,我试一下

我的idol叫阿中 发表于 2020-6-29 17:23:26

我的idol叫阿中 发表于 2020-6-29 15:14
好的,我试一下

重新建了一个确实是你说的问题   谢谢
页: [1]
查看完整版本: 这跟小甲鱼老师打的一样但我显示有一个无法解析的外部命令?我用的vs2010,求助!!!