scanf输入的值如何能在循环中中保留到下一次给相同变量传递参数之前?

问题遇到的现象和发生背景

scanf输入的值如何能在循环中中保留到下一次给相同变量传递参数之前?

问题相关代码,请勿粘贴截图
else if(n%2!=0)
    {
        for(i=n;i>=1;i=i-2)
        {
            
            scanf("%f-%*c",&t1);
            if(i==n && i!=1)
            {
                x+=v*t1-a2*t1*t1/2;
                v-=a2*t1;
            }
            else if(i!=n && i!=1)
            {
                x+=v*dn-a2*dn*dn/2;
                v-=a2*dn;
            }
            scanf("%f-%*c",&t2);
            if(i>1)
            {
                x+=v*dt-a1*dt*dt/2;
                v-=a1*dt;
            }
            else if(i==1)
            {
                x+=v*v/(2*a1);
                break;
            }
        }
    }
运行结果及报错内容

传入参数n为奇数,满足循环条件,但是这个语句根本运行不了。甚至执行前面n==0的判断内容。

我的解答思路和尝试过的方法
我想要达到的结果

img

你应该先把输入的数据读入到一个数组中,如果输入数据的个数为奇数,你在数组最后补一个倒数第二个数,这样数组的元素个数始终是偶数。然后你的程序从数组里提取数据。