C语言依次读入浮点和整型

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

输入流为浮点型和整型交替成对出现,以空格作为分隔。
需要依次读入浮点型和整型数据,在遇到特殊字符时中止读入。

用代码块功能插入代码,请勿粘贴截图

以下为错误的代码

int count_1=0,count_2=0;
float coef;
    int exp;
while (scanf("%f %d",&coef,&exp)==2);
    {
        count_1++;
        push(polynomial_1,coef,exp);
        printf("%f %d",polynomial_1->next->coef,polynomial_1->exp);
        printf("\n%d",count_1);
    }
运行结果及报错内容

只能获取一轮输入,浮点型读取正确,整型的值始终为0,count_1的值始终为1。

我的解答思路和尝试过的方法

我想的是用scanf一次性读入两个数,一个是浮点型,一个是整型,因为是成对出现,所以一定能读取两个数,返回值判定为2,一轮循环。
但是事实证明我的想法是错误的,但我不知道怎么改了。

我想要达到的结果

在输入流中依次读取浮点型和整型,每读入一对就使得count_1的值+1。

输出整数的那里,是不是应该有一个next