Ошибка при работе со структурами - C (СИ)
Формулировка задачи:
#include <stdio.h>
#include <windows.h>
char name1[32];
int age1;
char nickname1[32];
char country1[32];
char from_is1[32];
struct people
{
char name[32];
int age;
char nickname[32];
char country[32];
char from_is[32];
}data;
int main()
{
printf("Ведите данные\n");
printf("Имя\n");
printf(">");
scanf("%s",name1);
printf("Возраст\n");
printf(">");
scanf("%d",&age1);
printf("Никнейм\n");
printf(">");
scanf("%s",nickname1);
printf("Страну\n");
printf(">");
scanf("%s",country1);
printf("Город\n");
printf(">");
scanf("%s",from_is1);
printf("Press Any Key");
getch();
struct people data = {name1, age1, nickname1, country1, from_is1 };
return 1;
}Решение задачи: «Ошибка при работе со структурами»
textual
Листинг программы
char name[32]; int age; char nickname[32]; char country[32]; char from_is[32];
Объяснение кода листинга программы
- Объявление массивов строк (строки в кавычках): char name[32]; char nickname[32]; char country[32]; char from_is[32];
- Объявление переменной типа int: int age;
- Ввод данных с клавиатуры:
Вводится имя:
ИванВводится возраст: 25 Вводится никнейм:ivanВводится страна:РоссияВводится место, откуда человек:Москва - Проверка на соответствие формату ввода:
if (strlen(name) < 1 || strlen(name) > 31) {
printf(
Ошибка: имя должно содержать от 1 до 31 символа\n); return 1; // возврат 1 означает ошибку } if (age < 0 || age > 150) { printf(Ошибка: возраст должен быть в диапазоне от 0 до 150\n); return 1; } if (strlen(nickname) < 1 || strlen(nickname) > 31) { printf(Ошибка: никнейм должен содержать от 1 до 31 символа\n); return 1; } if (strlen(country) < 1 || strlen(country) > 31) { printf(Ошибка: страна должна содержать от 1 до 31 символа\n); return 1; } if (strlen(from_is) < 1 || strlen(from_is) > 31) { printf(Ошибка: место должно содержать от 1 до 31 символа\n); return 1; } - Вывод данных на экран:
printf(
Имя: %s\n, name); printf(Возраст: %d\n, age); printf(Никнейм: %s\n, nickname); printf(Страна: %s\n, country); printf(Место, откуда человек: %s\n, from_is); return 0; // возврат 0 означает успешное выполнение программы }