【发布时间】:2016-03-13 14:15:09
【问题描述】:
我正在尝试编写一个交换两个数字的程序。我试图修改我的代码,但仍然没有答案。请提前帮助和感谢。
变量为x、y和z,取值为10、-1 和 5。因此:x=10、y=-1 和 z=5。预期的输出必须是 x=-1、y=5 和 z=10。如您所见,顺序是从最小的数字到最大的数字。所以请更正我的代码,我正在使用 Dev-C++ 5.11 作为我的编译器。附言不能根据我的导师更改 swap 的公式。 (虽然你可能知道)
这是我制作的代码:
void swap(int *px, int *py)
{
int temp;
temp = *px;
*px = *py;
*py = temp;
}
int main(void)
{
int x,y,z;
x=10;
y=-1;
z=5;
printf("x=%d y=%d z=%d\n",x,y,z);
if(x>y)
{
x=y;
}
else if(y>z)
{
y=z;
}
else if(z>x)
{
z=x;
}
swap(&x,&y);
printf("x=%d y=%d z=%d",x,y,z);
return 0;
}
同样,预期输出必须是:
x=-1, y=5, z=10
【问题讨论】:
-
您编译时是否启用了警告。您甚至没有向您的
printf提供所有 3 个变量!你应该在所有if中使用swap。 -
更重要的是:没有 Dev-C++ 5.11 编译器。
-
海报不再构建和测试作业。该阶段被绕过,功能失调的源代码复制/粘贴直接到 SO :(
-
@AnttiHaapala 是的。我忘了。我的错误和抱歉
-
@Joel 是的,Dev-C++ 中有一个 5.11 编译器。
标签: c function if-statement swap