C++ 是否在不使用数组的情况下更新最后3个值?
我得写一个程序。 其中我得到无限多的用户输入和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,
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_值
anst_值
的逻辑应该与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;
}