Как вывести структуру в виде таблицы на СИ?

возникла такая проблема- пытался вывести структуру в виде таблицы, но почему-то не получается.Вот что получается

#include "stdafx.h"
#include "stdio.h"
#include"Windows.h"
#include "locale.h"
typedef struct
{
    int year;
    int ussr;
    int usa;
    int eng;
    int fran;
}row;
row table[5];


#pragma warning (disable : 4996)
int _tmain(int argc, _TCHAR* argv[])

{
    setlocale(LC_ALL, "");

    char *nazva[] = { " Годы ",  " СССР ", " США ", " Англия ", " Франция " };
    printf("Введите данные: ");
    for (int i = 0; i<4; i++)
    {
        printf("[%d]", i);
        scanf("%d", &table[i].year);
        scanf("%d", &table[i].ussr);
        scanf("%d", &table[i].usa);
        scanf("%d", &table[i].eng);
        scanf("%d", &table[i].fran);
    }
    for (int i = 0; i<3; i++)
    {
        printf("%s ", nazva[i]);
        printf("%d ", table[i].year);
        printf("%d ", table[i].ussr);
        printf("%d ", table[i].usa);
        printf("%d ", table[i].eng);
        printf("%d ", table[i].fran);
        printf("\n");
    }
    system("pause");
    return 0;
} 

Вот собственно говоря код этого чуда, не судите строго, я еще толком не разобрался, что тут да как... Не могу понять как сделать хотя бы приблизительно такой вид у таблицы Пример


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

Автор решения: EOF
// Здесь, кстати, нужен const
const char *nazva[5] = { "Годы",  "СССР", "США", "Англия", "Франция" };

// Здесь ввод данных

// Выводим шапку таблицы
// 5 потому что в nazva лежат 5 строк
for (int i = 0; i < 5; i++)
{
    printf("%10s ", nazva[i]);
}

// Переход на следующую строку
printf("\n");

// Выводим данные из массива
// ArrSize - количество выводимых структур
for (int i = 0; i < ArrSize; i++)
{
    printf("%10d ", table[i].year);
    printf("%10d ", table[i].ussr);
    printf("%10d ", table[i].usa);
    printf("%10d ", table[i].eng);
    printf("%10d ", table[i].fran);
    printf("\n");
}
→ Ссылка
Автор решения: Drunk Withcher

Cпасибо всем кто пытался помочь в решении моей проблемы. Я его все-таки нашел:

#include "stdafx.h"
#include "stdio.h"
#include"Windows.h"
#include "locale.h"

typedef struct
{
    int year, ssr, usa, ang, franz;
}dannie;
dannie d[5];

#pragma warning (disable : 4996)
int _tmain(int argc, _TCHAR* argv)
{setlocale(LC_ALL, "");
char sh[] = "--------------------------------------------------------------";
char *nazva[] = { "Годы",  "СССР", "США", "Англия", "Франция" };
int i = 0;
    
    printf("Введите года: "); 
    
    for (i = 0; i < 5; i++)
    {
        scanf("%d", &d[i].year);
    }
    
    printf("Введите данные СССР: ");
    
    for (i = 0; i < 5; i++)
    {
        scanf("%d", &d[i].ssr);
    } 
    
    printf("Введите данные США: ");
    
    for (i = 0; i < 5; i++)
    {
        scanf("%d", &d[i].usa);
    } 
    
    printf("Введите данные Англии: ");
    
    for (i = 0; i < 5; i++)
    {
        scanf("%d", &d[i].ang);
    } 
    
    printf("Введите данные Франции: ");
    
    for (i = 0; i < 5; i++)
    {
        scanf("%d", &d[i].franz);
    }
    for (i=0;i<5;i++)
    {
        printf("%s\t", nazva[i]);
    }
    printf("\n"); 
    for (i=0;i<5;i++)
    {
        printf("%4d\t", d[i].year);
        printf("%4d\t", d[i].ssr);
        printf("%3d\t", d[i].usa); 
        printf("%6d\t", d[i].ang);
        printf("%7d\t", d[i].franz);
        printf("\n");
    }

    printf("\n Производится расчет производительности труда...\n");
    float tempra=0, temprf=0;
    float rascheta, raschetf;
    for (int i = 0; i < 5; i++)
    {
        printf("Год:%d, Англия:%d, Франция:%d\n", d[i].year, d[i].ang, d[i].franz);
        rascheta =(float) d[i+1].ang / d[i].year * 100;
        raschetf =(float) d[i].franz / d[i].year * 100;
        if (rascheta > tempra)
        {
            tempra = rascheta;
            printf("Прирост за %d год составляет(Англия): %f\n", d[i].year, tempra);
        }
        else 
        {
            printf("Прироста за %d год не было(Англия)\n", d[i].year);
        }
        if (raschetf > temprf)
        {
            temprf = raschetf;
            printf("Прирост за %d год составляет(Франция): %f\n", d[i].year, temprf);
        }
        else 
        {
            printf("Прироста за %d год не было(Франция)\n", d[i].year);
        }
    }
    
    float raznica;
    raznica = temprf - tempra;
    if (raznica < 0)
    {
        -raznica;
    }
    printf("Разница: %f\n", raznica);
    
    printf("Введите процент роста: ");
    float P;
    float tempu;
    int y[5];
    scanf("%f", &P);
    if (P<=0)
    {
        printf("Отрицательного процента роста не бывает\n");

    }
    else
    {
        for (i=0; i<5;i++)
        {
            tempu = d[i + 1].usa / d[i].usa * 100;
            if (tempu<=P)
            {
                printf("В %d году не превышало\n", d[i].year);
            }
        }
    }
    system("pause");
        return 0;
    }

Эта работа уже с дополнениями, но суть вывода таблицы заключается в следующем- мы должны спросить каждый элемент таблицы у пользователя в отдельности и занести это в массив структур, как это и было в старой версии, но при этом запоминать не строкой, а переменной массива структур, после чего поэлементно вывести вначале названия таблицы через цикл for, а затем вывести через этот цикл все данные, главное это указать сколько места они будут занимать(К примеру, Года, 4 буквы, то есть когда выводим таблицу вначале выводим заголовок, а после этого тоже в цикле for printf("%4d", d[i].year); но цикл этим не заканчивается, продолжаем так для всех данных, а затем в конце с новой строки, иначе все данные пойдут строчкой). Еще раз хочу всем сказать огромное спасибо, без вашей помощи я бы не справился)))

→ Ссылка