Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/57.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.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 尝试交换四个数字,但输出结果为87 2次_C - Fatal编程技术网

C 尝试交换四个数字,但输出结果为87 2次

C 尝试交换四个数字,但输出结果为87 2次,c,C,我试图交换四个数字,但得到了87 2倍的输出 代码 #include <stdio.h> int main() { int n1, n2, n3, n4, n5; printf("Enter 4 Numbers: "); scanf("%d %d %d %d", &n1, &n2, &n3, &n4); if ((n1 >= 72 && n1 <=

我试图交换四个数字,但得到了87 2倍的输出

代码

#include <stdio.h>

int main()
{
    int n1, n2, n3, n4, n5;
    printf("Enter 4 Numbers: ");
    scanf("%d %d %d %d", &n1, &n2, &n3, &n4);

    if ((n1 >= 72 && n1 <= 820) && 
        (n2 >= 72 && n2 <= 820) && 
        (n3 >= 72 && n3 <= 820) && 
        (n4 >= 72 && n4 <= 820))
        n4 = n1;
    n1 = n2;
    n2 = n3;
    n3 = n4;

    printf("\nAfter Interchanging n1, n2, n3 and n4 are %d %d %d %d", n1, n2, n3, n4);

    return 0;
}

n4=n1擦除
n4
的原始值。您需要使用另一个变量暂时保存该值。另外,您似乎忘记在
if
语句之后添加
{}

#include <stdio.h>

int main() {

    int n1, n2, n3, n4 ,n5;
    printf ("Enter 4 Numbers: ");
    scanf ("%d %d %d %d", &n1, &n2, &n3, &n4);

    if ((n1>=72 && n1<=820) && (n2>=72 && n2<=820)
    && (n3>=72 && n3<=820) && (n4>=72 && n4<=820)) {

        int t = n4;
        n4 = n1;
        n1 = n2;
        n2 = n3;
        n3 = t;

    }

    printf ("\nAfter Interchanging n1, n2, n3 and n4 are %d %d %d %d" \
        ,n1, n2, n3, n4);

    return 0;
}
应该是:

        int t = n3;
        n3 = n1;
        n1 = n2;
        n2 = t;

n4=n1擦除
n4
的原始值。您需要使用另一个变量暂时保存该值。另外,您似乎忘记在
if
语句之后添加
{}

#include <stdio.h>

int main() {

    int n1, n2, n3, n4 ,n5;
    printf ("Enter 4 Numbers: ");
    scanf ("%d %d %d %d", &n1, &n2, &n3, &n4);

    if ((n1>=72 && n1<=820) && (n2>=72 && n2<=820)
    && (n3>=72 && n3<=820) && (n4>=72 && n4<=820)) {

        int t = n4;
        n4 = n1;
        n1 = n2;
        n2 = n3;
        n3 = t;

    }

    printf ("\nAfter Interchanging n1, n2, n3 and n4 are %d %d %d %d" \
        ,n1, n2, n3, n4);

    return 0;
}
应该是:

        int t = n3;
        n3 = n1;
        n1 = n2;
        n2 = t;

确切的预期输出是什么?
n3=n4=original-n1
似乎是个问题。请看第一个和第四个赋值操作。这就是他们最终要做的。只有
n4=n1
实际位于if块中。适当的缩进将立即揭示这一点。您是否打算在
if
块中包含4条赋值语句?@yano 98 90 87 76
n1=n2;n2=n3;n3=n4不在
if
块中。确切的预期输出是什么?
n3=n4=original-n1
似乎是故障。请看第一个和第四个赋值操作。这就是他们最终要做的。只有
n4=n1
实际位于if块中。适当的缩进将立即揭示这一点。您是否打算在
if
块中包含4条赋值语句?@yano 98 90 87 76
n1=n2;n2=n3;n3=n4不在
if
块中。