你好我制作了一个程序来组织用户提交的3个号码。该程序有效,但出于某种原因,当我把0 0 0它没有完成时。
while (k == 1)
{
k=inputthree(&num1, &num2, &num3);
if (k == 1)
{
sortthree(&num1, &num2, &num3);
printf("%d %d %d\n", num1, num2, num3);
}else printf("Finish!");
inputthree似乎总是返回1我不知道为什么。完整代码: -
#include <stdio.h>
#define N 3
int inputthree(int* num1, int* num2, int* num3);
void sorttwo(int* num1, int* num2);
void sortthree(int* num1, int* num2, int* num3);
int main()
{
int num1, num2, num3,k=1;
while (k == 1)
{
k=inputthree(&num1, &num2, &num3);
if (k == 1)
{
sortthree(&num1, &num2, &num3);
printf("%d %d %d\n", num1, num2, num3);
}else printf("Finish!");
}
}
int inputthree(int* num1, int* num2, int* num3)
{
printf("Enter 3 numbers:- ");
scanf("%d %d %d", num1, num2, num3);
if (num1 == 0 && num2 == 0 && num3 == 0)
return 0;
else return 1;
}
void sorttwo(int* num1, int* num2)
{
int temp;
if (*num1 > *num2)
{
temp = *num1;
*num1 = *num2;
*num2 = temp;
}
}
void sortthree(int* num1, int* num2, int* num3)
{
sorttwo(num1, num2);
sorttwo(num1, num3);
sorttwo(num2, num3);
}
感谢大家的帮助。
答案 0 :(得分:0)
您正在检查NULL
范围内的所有参数是否为inputthree
。试试,
if(*num1 == 0 && *num2 == 0 && *num3 == 0)
答案 1 :(得分:0)
您正在比较指针,而不是nums。使用:
if(*num1 == 0 && *num2 == 0 && *num3 == 0)