Вывести таблицей фамилию, год рождения, оценку за первую и вторую сессию - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здраствуйте, в програме нужно вывести таблицей с фамилию, год рожд, оценка за 1 сесию и вторую вот мой код:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
#define N 3
#define BAL 3
 
struct stud {
    char fam[80 + 1];
    char vik[80 + 1];
}
part1[N];
 
struct sesion {
    int ses1;
    int ses2;
}
part2[BAL];
 
main()
{
    int i, j, avg;
 
    system("cls");
    srand(time(NULL));
 
    for(i = 1; i <= N; i++)
    {
        printf("vvedit prizvuwe %d studenta:\n", i);
        scanf("%s", &part1[i].fam);
        printf("vvedit rik narodchenny %d studenta:\n", i);
        scanf("%s", &part1[i].vik);
    }
    printf("\n");   system("pause");
 
    for(i = 1; i <= N; i++)
    {
        for(j = 1; j <= BAL; j++)
        {
            printf("vvedit ocinku %d studenta 1 sesii: ", j, i);
            scanf("%d", &part2[j].ses1);
        }
    }
 
    for(i = 1; i <= N; i++)
    {
        for(j = 1; j <= BAL; j++)
        {
            printf("vvedit ocinku %d studenta 2 sesii: ", j, i);
            scanf("%d", &part2[j].ses2);
        }
    }

    printf("---------------------------------------------------------------\n");\
    printf("| PRIZVUWE | DATA NAR | OCINKU ZA 1 SESI}0 | OCINKU ZA 2 SESI}0 |\n");
    printf("---------------------------------------------------------------\n");
    for(i = 1; i <= N; i++)
    {
        for(j = 1; j <= BAL; j++)
        {
            printf("%s\t%s\t%d\t%d\n", part1[i].fam, part1[i].vik,part2[j].ses1, part2[j].ses2);
        }
    }
getch();
return 0;
}
нужно чтобы было примерно так:

Решение задачи: «Вывести таблицей фамилию, год рождения, оценку за первую и вторую сессию»

textual
Листинг программы
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
 
#define STUD 2
#define PRED 1
 
struct stud {
    char fam[80 + 1];
    char vik[80 + 1];
    int print;
}
part1[STUD + 1];
 
struct sesion {
    int ses1[PRED];
    int ses2[PRED];
}
part2[STUD];
 
void printCheck(int ball, int i)
{
    if( (ball <= 2) && (part1[i].print != 1) )
    {
            part1[i].print = 1;
    }
}
 
main()
{
    int i, j, cnt = 0;
 
    system("cls");
 
    for(i = 1; i <= STUD; i++)
    {
        printf("vvedit prizvuwe %d studenta:\n", i);
        scanf("%s", part1[i].fam);
        printf("vvedit rik narodchenny %d studenta:\n", i);
        scanf("%s", part1[i].vik);
    }
    printf("\n");   system("pause");
 
    for(i = 1; i <= STUD; i++)
    {
        for(j = 1; j <= PRED; j++)
        {
            printf("Vvedit %d ocinku dl9 studenta %s za 1 sesiyu: ", j, part1[i].fam);
            scanf("%d", &part2[i].ses1[j-1]);
 
            printCheck(part2[i].ses1[j-1], i);
        }
    }
 
    for(i = 1; i <= STUD; i++)
    {
        for(j = 1; j <= PRED; j++)
        {
            printf("Vvedit %d ocinku dl9 studenta %s za 2 sesiyu: ", j, part1[i].fam);
            scanf("%d", &part2[i].ses2[j-1]);
 
            printCheck(part2[i].ses2[j-1], i);
        }
    }
 
 
    printf("---------------------------------------------------------------\n");\
    printf("| PRIZVUWE | DATA NAR | OCINKU ZA 1 SESI}0 | OCINKU ZA 2 SESI}0 |\n");
    printf("---------------------------------------------------------------\n");
    for(i = 1; i <= STUD; i++)
    {
        if(part1[i].print)
        {
            printf("%s\t  %s\t", part1[i].fam, part1[i].vik);
            for(j = 1; j <= PRED; j++)
            {
                printf("%d;",part2[i].ses1[j-1]);
            }
            printf("\t\t\t");
            for(j = 1; j <= PRED; j++)
            {
                printf("%d;",part2[i].ses2[j-1]);
            }
            printf("\n");
            cnt++;
        }
    }
 
    if(cnt)
        printf("\nKilkist studentiv v jakuh o4inka <= 2: %d\n", cnt);
    else
        printf("\nStudentu v jakuh o4inka <= 2 vidsutni!\n");
getch();
return 0;
}

Оцени полезность:

14   голосов , оценка 3.857 из 5
Похожие ответы