鱼C论坛

 找回密码
 立即注册
查看: 1199|回复: 16

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

[复制链接]
发表于 2020-6-29 12:18:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#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 13:49:34
本帖最后由 jhanker 于 2020-6-29 13:52 编辑

我看代码是没什么问题吧
文件名改一下,新建一个文件 文件名最好简单点 重新编译
输入数据的时候 各数字之间加个空格
比如输入 2 3 4
结果 4>3>2
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-6-29 12:23:21 | 显示全部楼层
  1. #include <stdio.h>
  2. void swap(int *p,int *q)
  3. void exchange(int *n,int *u,int *m)

  4. void main()
  5. {
  6.         void exchange(int *n,int *u,int *m);
  7.         int *a,*b,*c,i,j,k;
  8.         
  9.         scanf("%d %d %d",&i,&j,&k);
  10.         a=&i;
  11.         b=&j;
  12.         c=&k;
  13.         exchange (a,b,c);
  14.         
  15.         printf("%d>%d>%d\n",i,j,k);
  16. }

  17. void exchange(int *n,int *u,int *m)
  18. {
  19.         void swap(int *p,int *q);
  20.         if(*n<*u)  
  21.         {swap(n,u);}
  22.         if(*n<*m)
  23.         {swap(n,m);}
  24.         if(*u<*m)  
  25.         {swap(u,m);}
  26.         
  27. }
  28. void swap(int *p,int *q)
  29.    
  30. {
  31.         int t;
  32.         t=*p;
  33.         *p=*q;
  34.         *q=t;
  35. }


复制代码

子函数需要提前声明
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-29 12:25:03 | 显示全部楼层
抱歉,刚刚少了俩分号
  1. #include <stdio.h>
  2. void swap(int *p,int *q);
  3. void exchange(int *n,int *u,int *m);

  4. void main()
  5. {
  6.         void exchange(int *n,int *u,int *m);
  7.         int *a,*b,*c,i,j,k;
  8.         
  9.         scanf("%d %d %d",&i,&j,&k);
  10.         a=&i;
  11.         b=&j;
  12.         c=&k;
  13.         exchange (a,b,c);
  14.         
  15.         printf("%d>%d>%d\n",i,j,k);
  16. }

  17. void exchange(int *n,int *u,int *m)
  18. {
  19.         void swap(int *p,int *q);
  20.         if(*n<*u)  
  21.         {swap(n,u);}
  22.         if(*n<*m)
  23.         {swap(n,m);}
  24.         if(*u<*m)  
  25.         {swap(u,m);}
  26.         
  27. }
  28. void swap(int *p,int *q)
  29.    
  30. {
  31.         int t;
  32.         t=*p;
  33.         *p=*q;
  34.         *q=t;
  35. }


复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-29 12:28:35 | 显示全部楼层
建议把函数提到前面去,这样就可以了:
  1. #include <stdio.h>


  2. void swap(int* p, int* q)
  3. {
  4.     int t;
  5.     t = *p;
  6.     *p = *q;
  7.     *q = t;
  8. }


  9. void exchange(int* n, int* u, int* m)
  10. {
  11.     if (*n < *u)
  12.     {
  13.         swap(n, u);
  14.     }
  15.     if (*n < *m)
  16.     {
  17.         swap(n, m);
  18.     }
  19.     if (*u < *m)
  20.     {
  21.         swap(u, m);
  22.     }

  23. }


  24. int main()
  25. {
  26.     int* a, * b, * c, i, j, k;

  27.     scanf("%d %d %d", &i, &j, &k);
  28.     a = &i;
  29.     b = &j;
  30.     c = &k;
  31.     exchange(a, b, c);

  32.     printf("%d>%d>%d\n", i, j, k);
  33.     return 0;
  34. }
复制代码
还有 main 函数应该返回 0
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-29 12:31:26 | 显示全部楼层
小甲鱼的铁粉 发表于 2020-6-29 12:25
抱歉,刚刚少了俩分号

好的谢谢谢谢啦
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

谢谢啦
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-29 12:33:34 | 显示全部楼层

不不不,我弄了前面去还是显示无法解析啊,这是怎么回事
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

还是显示有个一无法解析的外部命令
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-29 12:38:51 | 显示全部楼层
属实弄不明白了
求助求助呜呜
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-29 12:47:23 | 显示全部楼层
我的idol叫阿中 发表于 2020-6-29 12:38
属实弄不明白了
求助求助呜呜

复制发一下报错的内容吧
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 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 个 ==========
是这样的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-29 12:56:48 | 显示全部楼层
我的idol叫阿中 发表于 2020-6-29 12:50
1>------ 已启动生成: 项目: 20.6.24, 配置: Debug Win32 ------
1>LINK : error LNK2001: 无法解析的外 ...
  1. #include <stdio.h>
  2. #include<stdlib.h>
  3. void swap(int *p,int *q);
  4. void exchange(int *n,int *u,int *m);

  5. int main()
  6. {
  7.         void exchange(int *n,int *u,int *m);
  8.         int *a,*b,*c,i,j,k;
  9.         
  10.         scanf("%d %d %d",&i,&j,&k);
  11.         a=&i;
  12.         b=&j;
  13.         c=&k;
  14.         exchange (a,b,c);
  15.         
  16.         printf("%d>%d>%d\n",i,j,k);
  17.         system("pause");
  18.         return 0;


  19. }

  20. void exchange(int *n,int *u,int *m)
  21. {
  22.         void swap(int *p,int *q);
  23.         if(*n<*u)  
  24.         {swap(n,u);}
  25.         if(*n<*m)
  26.         {swap(n,m);}
  27.         if(*u<*m)  
  28.         {swap(u,m);}
  29.         
  30. }
  31. void swap(int *p,int *q)
  32.    
  33. {
  34.         int t;
  35.         t=*p;
  36.         *p=*q;
  37.         *q=t;
  38. }
复制代码


这样试试
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-29 12:59:29 | 显示全部楼层
用int main()行不
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-29 13:02:16 | 显示全部楼层

也是不行,
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-29 13:49:34 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jhanker 于 2020-6-29 13:52 编辑

我看代码是没什么问题吧
文件名改一下,新建一个文件 文件名最好简单点 重新编译
输入数据的时候 各数字之间加个空格
比如输入 2 3 4
结果 4>3>2
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

好的,我试一下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-29 17:23:26 | 显示全部楼层

重新建了一个确实是你说的问题   谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-6 20:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表