Некорректны вывод unsigned char. - C (СИ)
Формулировка задачи:
Здравствуйте. Есть код, вот он:
Проблема заключается в том, что при выводе в виде таблицы, за место date[i].month выводится тупо 0. Самое интересное, как я проверил, на момент ввода число равняется исходному... А после записи в массив структур становится равным 0. Почему так, можете объяснить?
Заранее спасибо!
#include "stdafx.h" #include <stdio.h> #include <conio.h> #define MaxDate 2 struct DATE{ unsigned short int year; unsigned char day; unsigned char month; }; int main(){ int i; DATE date[MaxDate]; printf("\t\tTask #1. Date's comparison.\n"); printf("ATTENTION! Year must be more then 1930!\n"); for(i = 0; i < MaxDate; i++){ do{ printf("\nInput year of the [%d] event >> ", i+1); scanf("%u", &date[i].year); } while(date[i].year <= 1930 || date[i].year > 2010); do{ printf("Input month of the [%d] event >> ", i+1); scanf("%uc", &date[i].month); } while(date[i].month <= 0 || date[i].month > 12); do{ printf("Input day of the [%d] event >> ", i+1); scanf("%uc", &date[i].day); } while(date[i].day <= 0 || date[i].day > 31); } printf("Result event-table:\n"); printf("| # | Date | Month | Year |"); for(i = 0; i < MaxDate; i++){ printf("\n| %d | %u | %u | %u |", i+1, date[i].day, date[i].month, date[i].year ); } getch(); return 0; }
Решение задачи: «Некорректны вывод unsigned char.»
textual
Листинг программы
scanf("", &date[i].month);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д