我正在尝试获取 3 个数字并从最小到最大打印它们。我当前的 while{} 主体和 while{} 的第二个主体(在底部)在它们位于 main() 时工作,但我当前的 while{} 主体不起作用..即使 while{} 的第二个主体(在底部)有效。
基本上我必须同时处理身体。{} 它们都在函数 main() 中工作。只有一个在它自己的函数中工作(第二个在最底部),我需要完整代码中显示的那个才能工作。有任何想法吗???非常感谢您的帮助!
通过不工作,我的意思是控制台只是在输入 3 个整数后等待。
#include <stdio.h>
#include <stdlib.h>
void sortThree(int *a, int *b, int *c);
int main(int argc, char *argv[])
{
int a, b, c, hold;
printf("Please input three numbers\n"
"with a space between each and then press enter: ");
scanf("%lf %lf %lf", &a, &b, &c);
sortThree( &a, &b, &c);
printf("\n\n%lf %lf %lf", a, b, c);
system("PAUSE");
return 0;
}
void sortThree(int *a, int *b, int *c)
{
while ((*a>*b)||(*b>*c)||(*a>*c))
{
if (*a>*b)
*b = (*a += *b -= *a) - *b;
if (*b>*c)
*b = (*c += *b -= *c) - *b;
if (*a>*c)
*c = (*a += *c -= *a) - *c;
}
}
这是第二个 while{} 正文。它在 main() 和它自己的函数中工作。
if (*a>*b)
{
int hold;
hold= *a;
*a = *b;
*b = hold;
}
if (*b>*c)
{
int hold;
hold= *b;
*b = *c;
*c = hold;
}
if (*a>*c)
{
int hold;
hold= *a;
*a = *c;
*c = hold;
}