Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/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++ 是否在不使用数组的情况下更新最后3个值?_C++_C_Logic - Fatal编程技术网

C++ 是否在不使用数组的情况下更新最后3个值?

C++ 是否在不使用数组的情况下更新最后3个值?,c++,c,logic,C++,C,Logic,我得写一个程序。 其中我得到无限多的用户输入和3个变量f_值、s_值、t_值 逻辑是: 如果输入与f_值不匹配,则它必须存储在f_值中,与s_值和t_值相同 变量应该有不同的输入值,如果值相同,则必须跳过。 e、 g 那么输出应该是 f_value 105 s_value 102 t_value 100 这应该没有数组 我尝试以下代码: #include <stdio.h> int main() { int number=0 f_value=0, s_value = 0,

我得写一个程序。 其中我得到无限多的用户输入和3个变量
f_值、s_值、t_值

逻辑是:

如果输入与
f_值
不匹配,则它必须存储在
f_值
中,与
s_值和t_值
相同

变量应该有不同的输入值,如果值相同,则必须跳过。 e、 g

那么输出应该是

f_value 105
s_value 102
t_value 100
这应该没有数组

我尝试以下代码:

#include <stdio.h>

int main()
{
    int number=0 f_value=0, s_value = 0, t_value = 0;

    while (1) {
        printf("-> ");
        scanf("%d", &number)
        if(t_value != s_value){
            t_value = s_value;
        }
        if(s_value != f_value){
            s_value = f_value;
        }
        if (number != f_value){
            f_value = number;
        }


           printf("f_value  %d\n",f_value);
           printf("s_value  %d\n",s_value);
           printf("t_value  %d\n",t_value);
        }

    return 0;      
    }
#包括
int main()
{
整数=0 f_值=0,s_值=0,t_值=0;
而(1){
printf(“->”);
scanf(“%d”和编号)
如果(t_值!=s_值){
t_值=s_值;
}
如果(s_值!=f_值){
s_值=f_值;
}
如果(数字!=f_值){
f_值=数字;
}
printf(“f_值%d\n”,f_值);
printf(“s_值%d\n”,s_值);
printf(“t_值%d\n”,t_值);
}
返回0;
}
但却得不到欲望的输出


谢谢你

如果第三个语句应该是第一个。

根据你的描述,F、S和T将始终具有相同的值

最初它们都是零。第一个输入是100,与F不匹配,所以我们将F设为100。“S和T相同”,因此结果相同;S=T=100

下一个输入是匹配的100,所以没有变化

下一个输入是102,它与F不匹配,所以我们设置F=102。同样,“S和T相同”,因此S=T=102。因此,我们可以从运行前三个输入中看出,无论输入什么,根据您的描述,F=S=T始终


那么,当F、S和T有不同的值时,如何精确地得到建议的输出呢?

我已经试过了。然后它给出了
f_值105、s_值105和t_值102
您说过
s_值
ans
t_值
的逻辑应该与
f_值
的逻辑相同。但是,这与预期的输出和发布代码中的条件都不匹配。请重读你的问题。
#include <stdio.h>

int main()
{
    int number=0 f_value=0, s_value = 0, t_value = 0;

    while (1) {
        printf("-> ");
        scanf("%d", &number)
        if(t_value != s_value){
            t_value = s_value;
        }
        if(s_value != f_value){
            s_value = f_value;
        }
        if (number != f_value){
            f_value = number;
        }


           printf("f_value  %d\n",f_value);
           printf("s_value  %d\n",s_value);
           printf("t_value  %d\n",t_value);
        }

    return 0;      
    }