Программирование на Си - Урок 5 - ввод с клавиатуры scanf, пишем калькулятор
HTML-код
- Опубликовано: 8 фев 2025
- Это видео для тех, кто еще ни разу не программировал, но прошел предыдущие 4 урока.
Будет рассмотрен ввод с клавиатуры при помощи scanf после чего мы напишем простой калькулятор.
В конце урока новое домашнее задание.
Плей лист - • Программирование на Си...
Мои уши ощутили кайф от этого звука потому что если вспомнить какой звук был в прошлых видео :DDD
Спасибо, что вы есть!
Очень понятные уроки, нигде не могла найти ничего подобного, ничего не понимала, только с вашими видео себя человеком почувствовала ! 💫💖
Топовый канал, автору респект с 1-го курса 👍
Это лучший урок который видел, без воды, все понятно
крутой проект! тут бы автору еще листинги выкладывать с комментариями в некоторых строках... А уроки - супер! Если кому и непонятно, то это значит, что надо по второму и третьему разу смотреть - просто еще не "врубились" в тему. На самом деле все так просто, что проще уже некуда - то, что для новичков можно начинать практиковать! Автор - молодец!
Зашел на видео, увидел название калькулятор и подумал,а я сейчас сам его без видео захреначу. Спустя пол дня дело было готово, калькулятор работает от одного ввода строки. Посмотрев видео я понял что сделал все лучше и научился большему
Как же не хватает в самом начале фразы : " Меня зовут всё ещё Антон!". Молодец Антоха. Никого не слушай, дави тему дальше.
какие хорошие у тебя однако переменные: int x, y; и ещё int i;. Просто загляденье : - )
От пенсионеров привет и большое спасибо
И от тупых школотронов :-)
С - язык ветеранов)
классные уроки
о, микрофон поменял)) ну наконец-то
ооо
каеф
такой контраст на фоне первых видео)
звук потрясающий)
bravo
Если не работает scanf то используйте scanf_s
Продолжаю учиться.
Детишкам такого же уровня наверное пригодится!
Мама , я на кнопки вместе с Антоном нажимаю - я программист?)
Чел , покажи детям что такое типы данных !!!
Примерно так же нам преподавали математику в школе: ту так пишем, тут так.. а что и зачем не понятно
Что именно непонятно?
а что делать если у меня правильно стоит скобка верхняя которая объединяет комманды но у меня показывает ошибку я сам программирую в replit но у меня нету компьютера
после операции выбора на экране результат не высчитывает, программа идентична
Антон, у гуманитариев после слова АДРЕС взрывается МОЗГ, а после слова УКАЗАТЕЛЬ - им хочется написать философскую книгу и тихо отойти от дел.
Здесь у тебя в уроке второй if это подсказка к ДЗ?
if(i==1)
printf("%d * %d = %d
", a,b,a*b);
else
printf("%d + %d = %d
", a,b,a+b);
можно и так сказать)
Правильна програма :
int x , y ;
int i ;
printf("input x =");
scanf("%d",&x);
printf("input y =");
scanf("%d",&y);
printf("opper:
1 = *
2 = +
3 = /
4 = -
select code=
");
scanf("%d",&i);
if(i == 1){
printf("%d * %d = %d",x,y,x * y);
}
else if(i == 2){
printf("%d + %d = %d",x,y,x + y);
}
else if(i == 3){
printf("%d / %d = %d",x,y,x / y);
}
else if(i == 4){
printf("%d - %d = %d",x,y,x - y);
}
return 0;
пытаюсь так-же работать с else, не выходит.
А где урок с проверкой введеного неверного значения пользователем?
Как сделать так, чтобы программа запоминала число после действия, потом его использовать?
я ввожу два числа, и консоль сразу закрывается, код точь в точь такой же
upd: Решено, забыл что в си тоже есть system("pause");
Прочитал первую часть предложения, а потом посмотрел на аву 😅
я что-то непонял функция scanf(something) ; кроме того что позволяет воодить какое-то значение, она ищё может заставлять программу зависать на себе как циклы(do-while, while, for? Непонятно. А так спасибо огромное за уроки и ваши старания =)
Yeahhh. I was sooooo stupid=)
подскажите, почему у меня не срабатывает scanf("%c", &s)? В проверке (закомментирована) всё отрабатывает, в коде- нет!
#include
#include
int main(){
int a, b;
char s;
/*int a=3, b=9;
char s;
scanf("%c", &s);
if(s=='*')
printf("%d %c %d = %d", a, s, b, a*b);*/
printf("vvedi pervoe chislo: ");
scanf("%d", &a);
printf("operaciya: ");
scanf("%c", &s);
printf("vvedi vtoroe chislo: ");
scanf("%d", &b);
if(s=='*')
printf("%d %c %d = %d", a, s, b, a*b);
if(s=='/')
printf("%d %c %d = %d", a, s, b, a/b);
if(s=='+')
printf("%d %c %d = %d", a, s, b, a+b);
if(s=='-')
printf("%d %c %d = %d", a, s, b, a-b);
}
printf("operaciya: ");
scanf("%c", &s);
Ты поместил это выражение между введением первого и второго числа. А нужно делать его самым последним, то есть после введения второго числа.
в scanf, при вводе спецификатора типа, лучше вводить его не сразу, а после пробела. То есть не так - scanf("%c", &s);
а так - scanf(" %c", &s);
не объяснил что означает строка команды printf("oper:
1 = *
2 = +
select code = ");
так в 1 и 4 уроках проходили же)
@@beginend95 ок, я просмотрю ещё раз.
@@weekendshow7567 Тут просто вывод текста, об этом в 1 уроке. Про
в 4-ом.
@@beginend95 ок в 4-ом уроке посмотрю
Что делать если после просмотра все равно ничево не понимаешь
Смотреть, пока не дойдёт.
#include
int main(void) {
float num1, num2;
int operation;
printf("Калькулятор v0.0.3
");
printf("Введите первое число, второе число, затем операцию
");
printf("Первое число: ");
scanf("%f", &num1);
printf("Второе число: ");
scanf("%f", &num2);
printf("Какую операцию?
");
printf(" 1.Суммировать
");
printf(" 2.Вычесть
");
printf(" 3.Умножить
");
printf(" 4.Разделить
");
printf("Твой выбор: ");
scanf("%d", &operation);
if (operation == 1){
printf("%f + %f = %f", num1, num2, num1+num2);
} else if (operation == 2){
printf("%f - %f = %f", num1, num2, num1-num2);
} else if (operation == 3){
printf("%f * %f = %f", num1, num2, num1*num2);
} else if (operation == 4){
printf("%f / %f = %f", num1, num2, num1/num2);
} else{
printf("Была выбрана несуществующая операция...");
}
return 0;
}
ошибка ?
Надо было сразу указатели и ссылки объяснять, так не пойдёт
у меня выводит в консоль все операции одна за другой(5*6=305+6=11 и так далее),то есть нет перевода строки где ошибка?
У меня не хватает магической силы, чтобы открыть твой код удаленно) Возможно ты где-то забыл
- это как раз перевод строки.
@@beginend95 магически визуализирую код:printf("oper:
1=*
2=+
3=/
4=--
select code=");
и выводит такое:2*3=62+3=52/3=0.666672-3=--1 причем происходит когда ввожу в select лабую цифру от 1 до 4
хмм, нашел ошибку -- оказывается поставил точку с запятой после оператора сравнения, только теперь все операции показывают ноль, ищу дальше
@@evgeniysmirnov4574 Попробуй убрать из кода все лишнее, оставь только самое простое. Так легче найти ошибку. Потом вернешь все назад.
@@evgeniysmirnov4574 нашел ошибку?
можно было бы вместо 1,2 для операций вводить стринги "+" и "*"
мы еще не знаем что это такое) Смотри следующие видео, все будет)
Звук)))
объясни к что это такое printf("oper:
1 = *
2 = +
select code = "); ??????????????????????
Это текст, который информирует нас о том какие варианты операций (oper) мы можем сделать.
1 = слэш+n здесь для того, чтобы перенести текст на новую строку. В тексте отобразится только цифра 1 как первый вариант предлагающий нам умножение. То есть 1 = *.
Затем пишется
для переноса на новую строку и текст 2 = +.
Select code это просьба выбрать предпочтительный нами код.
Что-то как-то «прорвало» объем написанного
Подсказочка для тех кто не сомг решить 2 задачу воть весь кодь писал упрощенно потому что у меня на данный момент 2 03 ночи
float x, y, i;
printf("x = > ");
scanf("%g", &x);
printf("iter 1 - +, 2 - '-', 3 - *, 4 - / = > ");
scanf("%g", &i);
printf("y = > ");
scanf("%g", &y);
if (i == 1) {
printf("%g + %g = %g", x, y, x+y);
return x+y;
}
else if (i == 2) {
printf("%g - %g = %g", x, y, x-y);
return x/y;
}
else if (i == 3) {
printf("%g * %g = %g", x, y, x*y);
return x*y;
}
else {
printf("%g / %g = %g", x, y, x/y);
return x/y;
}
объяснил бы лучше как первую задачку делать :((
думал достаточно будет int на float заменить, но нет
Полный отстой! Автор тараторит, будто пытается обогнать собственную мысль, не давая возможность обдумать сказанное им самим и ввести значения. Куча терминов и новых символов, которые оставляются для объяснения "на потом". Кошмар
кнопку паузы жми
лучше не ной а заново смотри, хотя ты уже забросил это дело, я знаю