- 已关闭。**此问题为not reproducible or was caused by typos。当前不接受答案。
这个问题是由打字错误或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
昨天关门了。
Improve this question
我正在尝试运行一个交换算法并返回c中的值。请帮助!
void swap(int a,int b)
{
temp = a;
a=b;
b=temp;
}
void display()
{
return a, b
}
void main()
{
x=10
y=12
swap(a,b)
display()
}
error: use of undeclared
identifier 'x'
error: 'main' must return
'int'
我在函数名中添加了void,在交换参数中添加了int,我不知道还能做什么。
2条答案
按热度按时间hzbexzde1#
这个程序有很多错误,在c语言编程中,在使用变量之前,我们必须明确声明它所能存储的数据类型,所以你必须定义
x
和y
的类型为整型(int x = 10
,int y=12
)。接下来,您在swap()
中传递未定义的标识符a
和b
。它必须是swap(x,y)
。最后一点是当你从一个函数返回一个值时,你必须定义函数的返回类型为你要返回的特定类型,在这种情况下,函数的返回类型必须是int display()
。eanckbw92#
1.)在C语言中,语句以分号(
;
)结尾。您在大多数行中缺少分号。2.)C是“pass-by-copy”,当你传递a和b给swap函数时,变量被复制,并且改变在调用函数中是不可见的。你***必须***pass-by-reference(又称指针),这样函数内部的局部改变才会对调用者可见。
我已经尝试修复你的代码与广泛的评论如下。
但坦白说,你的代码是一个混乱。
阅读一个基本的C教程。这些问题在基本教程中无处不在。
代码已修复并在线运行:
https://ideone.com/d581y3