Некорректное отображение вывода структур - C (СИ)
Формулировка задачи:
Проблема в выводе записанной структуры. В приложенном скрине показано, чем заполняются поля. Помогите решить проблему.
#include <stdio.h> #include <stdlib.h> #include <locale.h> #include <conio.h> #include <malloc.h> struct book { char title [15]; char author [15]; int value; }books[1]; int proba() { struct book *lib; int i; system("chcp 1251"); system("cls"); lib = (struct book*)malloc(sizeof(struct book)); printf("Введите название книги:"); scanf("%s", &lib->title); printf("Введите автора книги: "); scanf("%s", &lib->author); printf("Введите цену книги: "); scanf("%d",&lib->value); getchar(); printf("\n \n \n \n"); printf("=============\n"); printf("Автор: %s \n", lib->author); printf("Название: %s \n" , lib->title); printf("Цена: %d\n", lib->value); system("pause"); return 0; } void ukazateli() { int i; struct book *lib; lib = (struct book*)malloc(sizeof(struct book)); printf("<============================>\n"); printf("Название: %s\n",lib->title); printf("Автор: %s\n",lib->author); printf("Цена: %d\n",lib->value); printf("<============================>\n"); free(lib); } int main() { int s; setlocale(LC_ALL, "Russian"); do{ printf("1)Запись\n"); printf("2)Вывод \n"); printf("3)Выход \n"); scanf("%d", &s); if (s==3) break; switch(s) { case 1: proba(); break; case 2: ukazateli(); break; } } while(s>0); system ("pause"); return 0; }
Решение задачи: «Некорректное отображение вывода структур»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <locale.h> #include <conio.h> #include <malloc.h> struct book { char title[15]; char author[15]; int value; }; void ukazateli(book *lib); void proba(book *lib); int main() { struct book *lib = (struct book*)malloc(sizeof(struct book)); int s; setlocale(LC_ALL, "Russian"); do { printf("1)Запись\n"); printf("2)Вывод \n"); printf("3)Выход \n"); scanf("%d", &s); if (s == 3) break; switch (s) { case 1: proba(lib); break; case 2: ukazateli(lib); break; } } while (s>0); system("pause"); return 0; } void ukazateli(book *lib) { printf("<============================>\n"); printf("Название: %s\n", lib->title); printf("Автор: %s\n", lib->author); printf("Цена: %d\n", lib->value); printf("<============================>\n"); } void proba(book *lib) { printf("Введите название книги:"); scanf("%s", &lib->title); printf("Введите автора книги: "); scanf("%s", &lib->author); printf("Введите цену книги: "); scanf("%d", &lib->value); getchar(); printf("\n \n \n \n"); printf("=============\n"); printf("Автор: %s \n", lib->author); printf("Название: %s \n", lib->title); printf("Цена: %d\n", lib->value); getchar(); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д