没有数组更新最后3个值?

时间:2016-03-05 11:14:02

标签: c++ c logic

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

逻辑是:

如果输入与f_value不符,则必须与f_value相同的s_value and t_value存储。

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

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

但没有获得欲望输出。

谢谢你

2 个答案:

答案 0 :(得分:1)

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

最初他们都是零。第一个输入是100,它不匹配F,所以我们使F = 100。 &#34; S和T&#34;相同;所以结果是一样的; S = T = 100。

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

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

那么你究竟如何得到F,S和T具有不同值的建议输出?

答案 1 :(得分:0)

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