Принтер из звездочек - C (СИ)
Формулировка задачи:
Так как тут больше кода для С, то попрошу вас помочь с некоторым в моём коде:
Проблема в том, что когда я хочу в переменную int записать пробел (символ типо, пустота) то он либо:
а) пропускает строку scanf
б) scanf не работает.
Пробовал ставить getch, getchar, kbhit - не работало ничего.
И да, я новичок в этом деле, поэтому видимо такие костыли и получились)
#include <conio.h> #include <string.h> #include <iostream> main() { printf("Hi guys, this programm can print anything with *, /, - and other. This programm adapted for 10 lines of print. Good luck!\n"); //вступление int num1, num2, num3, num4, num5, num6, num7, num8, num9, num10; //обьявление переменных с кол-вом звездочек в каждой строке (строк 10) char sym1; //символ (звездочка или что нибудь другое) char space; //пробел (!) int ns1, ns2, ns3, ns4, ns5, ns6, ns7, ns8, ns9, ns10; //кол-во пробелов (!) printf("Enter symbol for print, for the example: * / =\n"); //ввод звездочки для записания в char sym1 scanf("%s", &sym1); //сканирование printf("Just press SPACE, then press ENTER.\n"); //ввод пробела (!) для записания в char space scanf("%s", &space); //сканирование printf("Pick number of spaces in lines\n"); //ввод кол-ва пробелов в строке scanf("%d%d%d%d%d%d%d%d%d", &ns1, &ns2, &ns3, &ns4, &ns5, &ns6, &ns7, &ns8, &ns9, &ns10); //сканирование printf("Enter the numbers denoting the number of characters per line\n"); //ввод символов в строке scanf("%d%d%d%d%d%d%d%d%d%d", &num1, &num2, &num3, &num4, &num5, &num6, &num7, &num8, &num9, &num10); //сканирование for(ns1; ns1 --;) //дальше идет печать пробелов и звездочек, работает вроде стабильно { printf("%s", space); } for(num1; num1 --;) { printf("%s", sym1); } printf("\n"); std::cout << "\7"; for(ns2; ns2 --;) { printf("%s", space); } for(num2; num2 --;) { printf("%s", sym1); } printf("\n"); std::cout << "\7"; for(ns3; ns3 --;) { printf("%s", space); } for(num3; num3 --;) { printf("%s", sym1); } printf("\n"); std::cout << "\7"; for(ns4; ns4 --;) { printf("%s", space); } for(num4; num4 --;) { printf("%s", sym1); } printf("\n"); std::cout << "\7"; for(ns5; ns5 --;) { printf("%s", space); } for(num5; num5 --;) { printf("%s", sym1); } printf("\n"); std::cout << "\7"; for(ns6; ns6 --;) { printf("%s", space); } for(num6; num6 --;) { printf("%s", sym1); } printf("\n"); std::cout << "\7"; for(ns7; ns7 --;) { printf("%s", space); } for(num7; num7 --;) { printf("%s", sym1); } printf("\n"); std::cout << "\7"; for(ns8; ns8 --;) { printf("%s", space); } for(num8; num8 --;) { printf("%s", sym1); } printf("\n"); std::cout << "\7"; for(ns9; ns9 --;) { printf("%s", space); } for(num9; num9 --;) { printf("%s", sym1 ); } printf("\n"); std::cout << "\7"; for(ns10; ns10 --;) { printf("%s", space); } for(num10; num10 --;) { printf("%s", sym1); } } }
ап темы
Решение задачи: «Принтер из звездочек»
textual
Листинг программы
char character=' '; scanf("%c",&character); for(int i=0;i<10;i++) printf("%c",character);
Объяснение кода листинга программы
В этом коде:
- Объявляется переменная
character
типаchar
и инициализируется знаком пробела (' '). - Используется функция
scanf()
для чтения ввода пользователя и присвоения его значения переменнойcharacter
. - Затем, в цикле
for
повторяется 10 раз: 3.1. Внутри цикла выводится символ, хранящийся в переменнойcharacter
, с помощью функцииprintf()
. Таким образом, этот код будет выводить 10 звездочек (поскольку символ пробела представлен в виде звездочки в ASCII-кодировке), и затем будет ожидать ввода пользователя для вывода того же символа.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д