Как получить несколько входов scanf из предыдущей переменной - PullRequest
0 голосов
/ 01 февраля 2011

Я пытаюсь написать код, который принимает несколько значений, используя scanf().В зависимости от того, что был предыдущий ввод.Как, например,

printf("enter how many trips you are taking:");
scanf("%f", &trip)

printf("please enter the cost of each trip:"); 

^ - я не могу понять, как сканировать несколько входных значений без ограничения количества входных значений стоимости

Ответы [ 2 ]

0 голосов
/ 01 февраля 2011

Я не думаю, что подойдет scanf() звонок (как я полагаю, вы надеялись, что это будет). Строка формата является конструируемой, но фактический вызов функции - нет, в том смысле, что вы не сможете иметь количество аргументов указателя назначения , условно , которое может быть изменено во время выполнения. Вы должны использовать цикл а-ля Джерри Коффин.

0 голосов
/ 01 февраля 2011

Очевидным ответом будет чтение значений в цикле:

float *trip_costs;
trip_costs = malloc(trip * sizeof(*trip_costs));

for (i=0; i<trip; i++)
    scanf("%f", trip_costs + i);

Также обратите внимание, что, поскольку вы используете его для подсчета, trip, вероятно, будет лучше использовать как целочисленный.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...