这跟小甲鱼老师打的一样但我显示有一个无法解析的外部命令?我用的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;
} #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;
}
子函数需要提前声明 抱歉,刚刚少了俩分号
#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;
}
建议把函数提到前面去,这样就可以了:#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 小甲鱼的铁粉 发表于 2020-6-29 12:25
抱歉,刚刚少了俩分号
好的谢谢谢谢啦 永恒的蓝色梦想 发表于 2020-6-29 12:28
建议把函数提到前面去,这样就可以了:还有 main 函数应该返回 0
谢谢啦 我的idol叫阿中 发表于 2020-6-29 12:31
好的谢谢谢谢啦
不不不,我弄了前面去还是显示无法解析啊,这是怎么回事 永恒的蓝色梦想 发表于 2020-6-29 12:28
建议把函数提到前面去,这样就可以了:还有 main 函数应该返回 0
还是显示有个一无法解析的外部命令 属实弄不明白了
求助求助呜呜 我的idol叫阿中 发表于 2020-6-29 12:38
属实弄不明白了
求助求助呜呜
复制发一下报错的内容吧 小甲鱼的铁粉 发表于 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 个 ==========
是这样的 我的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;
}
这样试试 用int main()行不 小甲鱼的铁粉 发表于 2020-6-29 12:59
用int main()行不
也是不行, 本帖最后由 jhanker 于 2020-6-29 13:52 编辑
我看代码是没什么问题吧
文件名改一下,新建一个文件 文件名最好简单点 重新编译
输入数据的时候 各数字之间加个空格
比如输入 2 3 4
结果 4>3>2 jhanker 发表于 2020-6-29 13:49
我看代码是没什么问题吧
文件名改一下,新建一个文件 文件名最好简单点 重新编译
输入数据的时候 各数字 ...
好的,我试一下 我的idol叫阿中 发表于 2020-6-29 15:14
好的,我试一下
重新建了一个确实是你说的问题 谢谢
页:
[1]