Я новичок в своем путешествии по программированию. Я пытался создать систему, которая могла бы собирать цифры и показывать оценку по каждому отдельному числу. Я делаю это в Code::Blocks. Но система не работает. Кроме того, ввод каждого отдельного числа действительно отнимает очень много времени и его сложно выполнить. Я попробовал этот код ниже -->
#include<stdio.h>
int main()
{
int num;
printf("Enter any number : ");
scanf("%d",&num);
switch(a)
{
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
case 9:
case 10:
case 11:
case 12:
case 13:
case 14:
case 15:
case 16:
case 17:
case 18:
case 19:
case 20:
case 21:
case 22:
case 23:
case 24:
case 25:
case 26:
case 27:
case 28:
case 29:
case 30:
case 31:
case 32:
printf("F");
break;
case 33:
case 34:
case 35:
case 36:
case 37:
case 38:
case 39:
printf("D");
break;
case 40:
case 41:
case 42:
case 43:
case 44:
case 45:
case 46:
case 47:
case 48:
case 49:
printf("C");
break;
case 50:
case 51:
case 52:
case 53:
case 54:
case 55:
case 56:
case 57:
case 58:
case 59:
print("B");
break;
case 60:
case 61:
case 62:
case 63:
case 64:
case 65:
case 66:
case 67:
case 68:
case 69:
printf("A-");
break;
case 70:
case 71:
case 72:
case 73:
case 74:
case 75:
case 76:
case 77:
case 78:
case 79:
printf("A");
break;
case 80:
case 81:
case 82:
case 83:
case 84:
case 85:
case 86:
case 87:
case 88:
case 89:
case 90:
case 91:
case 92:
case 93:
case 94:
case 95:
case 96:
case 97:
case 98:
case 99:
case 100:
printf("A+");
break;
default:
printf("Not valid");
}
}
Я ожидал, что если я введу какое-либо число, система покажет мне оценку этого отдельного числа.
Это неподходящее использование для switch()
. используйте if (num <= 32) { ... } else if (num <= 39) { ... }
и так далее
Кроме приведенной выше опечатки, я не вижу причин, по которым код не работал бы. Что вы получаете вместо ожидаемого результата?
Также опечатка print("B");
вместо printf("B")
. Код не компилируется, поэтому не может работать.
Когда вам дают число и просят мысленно перевести его в букву, собираетесь ли вы спросить себя: «Это число 1? Это 2? Это 3?...» и т. д.? Нет, вы спросите себя – в каком это диапазоне? Теперь вам следует перевести ту же логику в свою программу.
Вам нужно опубликовать фактический код, который вызывает у вас проблему, а не перепечатывать его, поскольку вы вносите новые ошибки и можете скрыть исходные ошибки.
Добро пожаловать в мир кодирования! Если вы обнаружите, что пример «очень трудоемкий и трудный для выполнения», то вас может ожидать разочарование, когда вы тратите часы работы после того, как свернули не туда :) В этом случае рассмотрите возможность использования гораздо более простого и быстрого if
. .. else if
.
@WeatherVane Настоящий программист написал бы сценарий для автоматического создания этого списка случаев: D
Вы забыли упомянуть несколько очень важных вещей. Что не работает? Если это ваш точный реальный код (а это определенно должно быть!), то вы даже не сможете запустить свою программу, потому что компилятор выведет некоторые сообщения об ошибках. В этом случае важно отобразить эти сообщения (точные и полные) в вашем вопросе. Если этот код представляет собой просто случайное изменение вашего кода (что делает его довольно бесполезным), но ваш реальный код компилируется нормально, тогда вам нужно сказать нам, что «Но система не работает». означает. Это рушится? Он сжигает ваш компьютер? Он просто завершается без какого-либо вывода?
отличный выбор C — отличный язык для изучения.
Прежде всего, в строке 79 есть ошибка. Вместо print следует использовать printf.
Во-вторых, число, полученное с помощью scanf, сохраняется в переменной num. Однако вы пытаетесь использовать оператор переключения для переменной A, которая не определена и не содержит вашего значения. Вместо этого вам следует использовать оператор switch с переменной num.
Чтобы получить более краткий код, попробуйте использовать оператор if следующим образом:
if (num > = 32) { printf("F"); } else if ...
Этот код даже не должен компилироваться. Имя переменной —
num
, но вы использовалиswitch(a)
вместоswitch(num)
.