鱼C论坛

 找回密码
 立即注册
查看: 958|回复: 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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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;
}
子函数需要提前声明
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

好的谢谢谢谢啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

谢谢啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

不不不,我弄了前面去还是显示无法解析啊,这是怎么回事
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

还是显示有个一无法解析的外部命令
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-29 12:38:51 | 显示全部楼层
属实弄不明白了
求助求助呜呜
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

复制发一下报错的内容吧
想知道小甲鱼最近在做啥?请访问 -> 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 个 ==========
是这样的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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;
}

这样试试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-29 12:59:29 | 显示全部楼层
用int main()行不
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

也是不行,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

使用道具 举报

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

好的,我试一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

重新建了一个确实是你说的问题   谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-13 13:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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