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

update last 3 value without an array?

本文关键字:更新 最后 个值 情况下 数组      更新时间:2023-10-16

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

逻辑是:

如果输入与f_value不匹配,则必须存储f_values_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  %dn",f_value);
           printf("s_value  %dn",s_value);
           printf("t_value  %dn",t_value);
        }
    return 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 具有不同值的建议输出呢?

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