Не верный ввод в структуру или вывод QT - C (СИ)

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

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

В общем вводит 6 значений, потом 5, выводит какую то чушь.
#include <stdio.h>
#include <windows.h>
struct WORKER
{
    char *fam,*name,*lastname,*dol;
    int year;
};
 
int main(void)
{
    struct WORKER mas[2];
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    for (int i=0;i<2;i++)
    {
        scanf("%s\n",&mas[i].fam);
        scanf("%s\n",&mas[i].name);
        scanf("%s\n",&mas[i].lastname);
        scanf("%s\n",&mas[i].dol);
        scanf("%d\n",&mas[i].year);
        printf("____");
    }
    system("cls");
    for (int i=0;i<2;i++)
    {
        printf("%s %s %s %s \n%d\n",&mas[i].fam,&mas[i].name,&mas[i].lastname,&mas[i].dol,&mas[i].year);
    }
    return 0;
}

Решение задачи: «Не верный ввод в структуру или вывод QT»

textual
Листинг программы
#include <stdio.h>
#include <windows.h>
struct WORKER
{
    char fam[30],name[30],lastname[30],dol[30];
    int year;
};
 
int main(void)
{
    int i;
    struct WORKER mas[2];
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    for (i=0;i<2;i++)
    {
        scanf("%s",mas[i].fam);
        scanf("%s",mas[i].name);
        scanf("%s",mas[i].lastname);
        scanf("%s",mas[i].dol);
        scanf("%dn",&mas[i].year);
        printf("____\n");
    }
    system("cls");
    for (i=0;i<2;i++)
    {
        printf("%s %s %s %s \n%d\n",mas[i].fam,mas[i].name,mas[i].lastname,mas[i].dol,mas[i].year);
    }
    system("pause");
    return 0;
}

Объяснение кода листинга программы

  1. Подключение необходимых библиотек: stdio.h и windows.h.
  2. Объявление структуры WORKER с полями: fam, name, lastname, dol, year.
  3. Объявление переменной i типа int для использования в цикле.
  4. Объявление массива структур WORKER типа mas[2].
  5. Установка кодировки консоли на 1251 с помощью функции SetConsoleCP.
  6. Ввод данных с клавиатуры с использованием цикла for и функции scanf в поля структуры WORKER.
  7. Вывод данных из полей структуры WORKER с использованием цикла for и функции printf.
  8. Очистка консоли с помощью функции system(cls).
  9. Вывод данных из полей структуры WORKER с использованием цикла for и функции printf.
  10. Ожидание нажатия клавиши с помощью функции system(pause).
  11. Возврат 0, что означает успешный конец работы программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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