Программа не видит ввод данных в переменные С

#include <stdio.h>

int main() 
{
char familii1[10], familii2[10], familii3[10];
char t1[2], t2[2], t3[2];
float kolvo1=0, kolvo2=0, kolvo3=0;
int top1=0, top2=0, top3=0;


scanf_s( "\n%s  %s  %f  %d",familii1,9,t1,1,&kolvo1,&top1);
scanf_s( "\n%s  %s  %f  %d",familii2,9,t2,1,&kolvo2,&top2);
scanf_s( "\n%s  %s  %f  %d",familii3,9,t3,1,&kolvo3,&top3);

printf("-------------------------------------------------------------------------");
printf("\n|Vedomost Sportivnih Sostizanii                                        |");
printf("\n------------------------------------------------------------------------");
printf("\n|Familii Yhasnikov   |Cod Komande    |Kol-vo ballov  |Mesto v komande  |");
printf("\n| %s  %s  %3.2f  %1d |", familii1,t1,kolvo1, top1);
printf("\n------------------------------------------------------------------------");
printf("\n| %s %s %3.2f %1d |", familii2,t2,kolvo2,top2);
printf("\n------------------------------------------------------------------------");
printf("\n| %s %s %3.2f %1d |", familii3,t3,kolvo3,top3);
printf("\n------------------------------------------------------------------------");
printf("\n|Premeshanie: D-'Denamo', S-'Spartak', H-'Shahter'                     |");
printf("\n------------------------------------------------------------------------");
}

Ответы (1 шт):

Автор решения: Harry

Вообще-то если почитаете документацию, то числа 9 и 1 у вас в строках

scanf_s( "\n%s  %s  %f  %d",familii1,9,t1,1,&kolvo1,&top1);

означают разер буфера с местом для нулевого символа. Поэтому, увидев 1, scanf_s ничего не читает — некуда! Возвращает ошибку и идет далее.

scanf_s( "\n%s  %s  %f  %d",familii1,10,t1,2,&kolvo1,&top1);

Попробуйте так.

→ Ссылка