Assuming your input is without remarks, i.e.
1.42
2.25
30.21
0 200
1 400
2 100
You could read the whole line, the test if it contains two integers (no. and quantity) or just a float (price). That is
#include <stdio.h>
#define ITEMS 300
int main(void)
{
float price[ITEMS];
int items = 0;
int item_no;
int item_qty;
char line[80];
while ( fgets(line, sizeof(line), stdin) && items < ITEMS )
{
if ( sscanf(line, "%d %d", &item_no, &item_qty) == 2)
{
if (item_no < items)
printf("item n. %d, item quatity %d, price = %f\n", item_no, item_qty, price[item_no] * item_qty);
}
else
{
if ( sscanf(line, "%f", &price[items]) == 1)
++items;
}
}
return 0;
}