Этот код объединяет часть большого кода базы данных в C. В этой части участвуют ученики. требования должны использоваться typedef unsigned char uint8 вместо простого int. Для меня жизни я не могу заставить его работать. Когда я использую% c в scanf, он пропускает. При печати, если он печатает первую цифру. Итак, это код с int, и он работает нормально, как я могу заставить его работать с uint8 или unsigned char ???uint8 с scanf и printf в C
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <ctype.h>
#include <inttypes.h>
#include <string.h>
//typedef unsigned char uint8;
typedef unsigned int uint8;
int main(void)
{
uint8 grades_t[3], gr_c, g_temp;
for (gr_c = 0; gr_c < 3;)
{
printf("please enter the grade (0-100) of subject no%d: ", gr_c+1);
scanf("%d", &g_temp);
if (g_temp < 0 || g_temp > 100) //only accept values between 0-100
{
printf("please enter valid grade from 0 - 100!\n");
gr_c --; //if value is out of range, decrement
}
else //store value
{
grades_t[gr_c] = g_temp;
}
gr_c++;
}
printf("grade = %d\n", grades_t[0]); //unite test
printf("grade = %d\n", grades_t[1]);
printf("grade = %d", grades_t[2]);
return 0;
}
Добро пожаловать на Stack Overflow. Обратите внимание, что предпочтительный способ сказать «спасибо» здесь ответы на вопросы и полезные ответы (если у вас достаточно репутации, чтобы это сделать), и, приняв наиболее полезный ответ на любой интересующий вас вопрос (что также дает вам небольшой импульс для вашей репутации ). См. Страницу [About], а также [Как задать вопросы здесь?] (Http://stackoverflow.com/help/how-to-ask) и [Что мне делать, когда кто-то отвечает на мой вопрос ? ?] (http://stackoverflow.com/help/someone-answers) –