-7

我应该编写一个接受3整数参数并重新排列它们的函数。例如,如果a=370, b=2105c=40则该函数应导致a = 2105, b=370, c=40

我的代码给了我

errorLNK201`未解析的外部符号和致命错误LNK1120:1未解析的外部

#include <iostream>
using namespace std;
int a, b, c;
void sort_three (int & a, int & b, int & c);
void main () {}
void sort (int & a, int & b, int & c) {}

谢谢!我意识到 sort 和 sort_three 不匹配,解决了,谢谢大家

4

4 回答 4

9

名称不匹配:

void sort_three (int & a, int & b, int & c);
void sort (int & a, int & b, int & c) {

前者显然是后者的原型,但它的名称错误。

排序算法也不太正确(对于初学者来说,它在 中具有未定义的行为r[i+1])。

于 2013-04-17T17:25:37.317 回答
2

改名

void sort (int & a, int & b, int & c) {

void sort_three (int & a, int & b, int & c) {

当链接器无法找到足够的信息来将函数调用与函数定义链接时,总是会发生链接器错误。

原型中的函数签名应与定义中的函数签名匹配。并且也应该使用相同的签名来调用。

于 2013-04-17T17:25:42.097 回答
1

你的“void sort”不应该是“void sort_three”吗?(虽然有助于查看精确的链接错误)

于 2013-04-17T17:26:08.087 回答
1

您声明了 sort_threevoid sort_three (int & a, int & b, int & c);但定义了排序void sort (int & a, int & b, int & c) {,因此您的程序中没有 sort_three。

于 2013-04-17T17:26:18.757 回答