Я делаю программу, в которой пользователь вводит оценки (от 1 до 5), а затем класс добавляется в массив для последующего контроля. Когда пользователь вводит букву «s», программа закрывается. Почему, когда запускались мои программы, почему?C Преобразование строки в целое с использованием массивов
#include <stdio.h>
#include <stdlib.h>
int i;
int grade[50];
char *num[20];
int enter();
int enter()
{
for (i=0; i<10; i++) {
printf("\nEnter grade:\nPress [s] to close program\n");
scanf("%s",&num[i]);
if (strcmp(num[i],"s") == 0) {
break;
} else {
grade[i] = atoi(num[i]);
}
}
}
int main()
{
enter();
for (i=0; i<10; i++) {
printf("\n%d",grade[i]);
}
return 0;
}
прочитайте массив символов и строки в C еще раз. –
Почему бы не сделать массив целых чисел? И вы должны инициализировать массив, потому что вы печатаете 10 значений независимо от того, добавлены ли они в методе ввода –
Что делать, если пользователь (мы не можем доверять пользователям, можем ли мы?) Вводить «S» или «q» или "Выход"? :-) – pmg