在没有数组的情况下更新最后 3 个值?

update last 3 value without an array?

我要写一个程序。 我得到无限数量的用户输入和 3 个变量 f_value , s_value, t_value

逻辑是:

如果输入与 f_value 不匹配,则必须将其存储在 f_value 中,与 s_value and t_value.

相同

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

Input  Value:
100
100
102
102
102
102
102

105
105

那么输出应该

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;      
    }

但没有得到想要的输出。

谢谢你

第三个 if 语句应该是第一个。

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

最初它们都是零。第一个输入是 100,它与 F 不匹配,所以我们让 F=100。 "Same for S and T" 所以结果是一样的; S=T=100.

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

下一个输入是102,与F不匹配,所以我们设置F=102。同样 "same for S and T" 所以 S=T=102。所以我们从运行前三个输入可以看出,不管输入什么,根据你的描述一直都是F=S=T。

那么在 F、S 和 T 具有不同值的情况下,您如何准确地得到建议的输出?