Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++;if/else if语句不起作用 我对C++是相当新的,我必须用C++来制作一个程序,它可以使用3个数字(最小的最大值)。在函数中使用if语句之前,一切都正常。我试过做很多调试,似乎每当我使用“_C++_If Statement_Pass By Reference - Fatal编程技术网

C++;if/else if语句不起作用 我对C++是相当新的,我必须用C++来制作一个程序,它可以使用3个数字(最小的最大值)。在函数中使用if语句之前,一切都正常。我试过做很多调试,似乎每当我使用“

C++;if/else if语句不起作用 我对C++是相当新的,我必须用C++来制作一个程序,它可以使用3个数字(最小的最大值)。在函数中使用if语句之前,一切都正常。我试过做很多调试,似乎每当我使用“,c++,if-statement,pass-by-reference,C++,If Statement,Pass By Reference,时,您对scanf()使用了错误的格式说明符。 使用%lf(指向双精度的指针)代替%d(表示指向整数的指针)。 或者,将代码中的double更改为int 请注意,您的printf()语句也有类似的问题,应该使用%f、%g或%e三个不同的数字有6种可能的顺序(排列) 您的代码似乎只检查其中的3个,即,按顺序 n3

时,您对
scanf()
使用了错误的格式说明符。 使用
%lf
(指向双精度
的指针)代替
%d
(表示指向整数的指针)。 或者,将代码中的
double
更改为
int


请注意,您的
printf()
语句也有类似的问题,应该使用
%f
%g
%e
三个不同的数字有6种可能的顺序(排列)

您的代码似乎只检查其中的3个,即,按顺序

n3

n3

n1 在其他3种情况下,您只需返回0即可

从我上面的系统列表中,你能猜出其他三个案例有什么共同点,它们有什么相似之处吗



<>顺便说一下,不要问,但是你可以通过使用C++ <代码> CIN < /C>和代码> CUT<代码>来代替你自己的麻烦,而不是低级C函数<代码> SCAFF 和 PROTFF .< /P>你需要查看和手册<代码> SCANF >代码> SCANF(“%LD”,NUMX)有6种方法可以重排3个数字,而你的函数只有3个可能的输出。SCANF和PrimTf不是C++。它们是继承的C-ISM,它们不是类型化的。我建议你不要使用它们。
#include <cstdlib>
#include <iostream>
#include <stdio.h>

using namespace std;

int sortNum(double &n1, double &n2, double &n3);

int main(int argc, char *argv[]) {
    double num1, num2, num3;

    printf("Welcome to Taylor's Sorting Program \n");
    printf("Enter 3 numbers and the program will sort them \n");
    printf("Number 1: \n");
    scanf("%d", &num1);
    printf("Number 2: \n");
    scanf("%d", &num2);
    printf("Number 3: \n");
    scanf("%d", &num3);

    sortNum(num1, num2, num3);

    printf("Sorted Values \n");
    printf("Number 1: %d ", num1);
    printf("\t Number 2: %d ", num2);
    printf("\t Number 3: %d \n", num3);

    system("PAUSE");
    return EXIT_SUCCESS;
}

int sortNum(double &num1, double &num2, double &num3) {
    double n1, n2, n3;
    n1 = num1;
    n2 = num2;
    n3 = num3;


    if (n1 < n2 && n1 > n3) {
        num1 = n2;
        num2 = n1;
        num3 = n3;
    } else if (n2 < n1 && n2 > n3) {
        num1 = n3;
        num2 = n2;
        num3 = n1;
    } else if (n3 < n2 && n3 > n1) {
        num1 = n2;
        num2 = n3;
        num3 = n1;
    }
    return 0;
}