После вывода имени фамилии и оценки следующей строчкой выводится ненужный ноль - C (СИ)
Формулировка задачи:
после компиляции, после вывода имени фамилии и оценки следующей строчкой выводит совершенно ненужный ноль. Как от него избавиться? Помогайте
Исходный код:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct students
{
char name[100];
char surname[100];
int mark;
}; struct students ibks10882[6];
int main()
{
int i=-1;
float summ;
strcpy (ibks10882[0].name, "N");
strcpy (ibks10882[1].name, "A");
strcpy (ibks10882[2].name, "E");
strcpy (ibks10882[3].name, "A");
strcpy (ibks10882[4].name, "E");
strcpy (ibks10882[5].name, "N");
strcpy (ibks10882[0].surname, "K");
strcpy (ibks10882[1].surname, "P");
strcpy (ibks10882[2].surname, "U");
strcpy (ibks10882[3].surname, "P");
strcpy (ibks10882[4].surname, "D");
strcpy (ibks10882[5].surname, "Y");
ibks10882[0].mark=4;
ibks10882[1].mark=5;
ibks10882[2].mark=3;
ibks10882[3].mark=5;
ibks10882[4].mark=3;
ibks10882[5].mark=5;
printf ("Names's and surnames's students & their marks\n\n");
while (i++<6)
{
printf ("%s %s\t%d\n", ibks10882[i].name, ibks10882[i].surname, ibks10882[i].mark);
summ+=ibks10882[i].mark;
}
printf ("Middle mark=%1.2f", summ/6);
return 0;
}
Заменил цикл while на do while. Ничего не изменилось =/
ап ап ап теме
Решение задачи: «После вывода имени фамилии и оценки следующей строчкой выводится ненужный ноль»
textual
Листинг программы
int i=0;
...
while (i<6)
{
printf ("%s %s\t%d\n", ibks10882[i].name, ibks10882[i].surname, ibks10882[i].mark);
summ+=ibks10882[i].mark;
i++;
}
...
Объяснение кода листинга программы
- Объявлена переменная
iтипаintсо значением 0. - ...
- Происходит цикл
while, который выполняется пока значение переменнойiменьше 6. - В каждой итерации цикла выводится строка, содержащая имя, фамилию и оценку.
- Значение переменной
iувеличивается на 1 после каждой итерации цикла. - Происходит суммирование оценок.
- ...