Мне нужно написать программу на C (которую я новичок), чтобы пользователь вводил количество строк и столбцов и символ, который они должны отображать в качестве прямоугольника, ex : 6 строк и 6 столбцов звездочки.Создайте прямоугольник на основе ввода символа пользователя
Вот задание в деталях.
Первое, что сделает ваша программа, это распечатать меню выбора для пользователя . Вы можете выбрать собственную версию формулировки или порядка представленных вариантов, но каждый выбор, указанный в меню, должен соответствовать следующим образом: Функция, которая предлагает пользователю ввести один символ . Возвращаемое значение функции является символом char и возвращает значение символа, введенное пользователем. Это возвращаемое значение будет , сохраненное в локальной переменной C в main(). Начальным значением по умолчанию этот символ будет '' (пробел или пробел).
Функция, которая предлагает пользователю ввести числовое значение между 1 и 15 (включительно). Если пользователь вводит значение за пределами этого диапазона, пользователю будет предложено повторно ввести значение до ввода правильного значения. Возвращаемое значение функции будет int и вернет значение , введенное пользователем. Это возвращаемое значение будет храниться в локальной переменной , N, в main(). Начальное значение по умолчанию этого символа будет равно 0.
Два «Прямоугольника печати». Каждая функция принимает текущее значение целочисленное значение N и значение символа C в качестве входных параметров. Возврат значения этих функций будут недействительными. Функции будут печатать прямоугольников из N строк и столбцов с использованием символа ввода C. Функция Border Only будет печатать прямоугольник только с границей . Функция Filled In будет печатать прямоугольник в виде сплошного прямоугольника . Например, если целое значение N = 6, и символ значение C = «*» и заполненного типа называется следующая прямоугольник будет напечатано:
Вот мой код до сих пор, Я хочу знать, что я делаю неправильно, и правильно ли кодирую программу.
#include <stdio.h>
#include <stdlib.h>
char enterSingleChar();
int enterNumValue();
void printRectanlgeOne(int N, char C);
void printRectangleTwo(int N, char C);
int main()
`enter code here`{
char userChoice;
int N = 0;
char C = ' ';
fprintf(stdout, "Please choose one of the following choices below \n");
fprintf(stdout, "Enter/Change Character (C/c)\n");
fprintf(stdout, "Enter/Change Number (N/n) \n");
fprintf(stdout, "Print Rectangle Type 1 (Border Only), enter 1 \n");
fprintf(stdout, "Print Rectangle Type 2 (Filled in), etner 2 \n");
fprintf(stdout, "Quit Program (Q/q) \n");
scanf("%c", &userChoice);
switch(userChoice)
{
case 'C':
case 'c':
enterSingleChar();
break;
case 'N':
case 'n':
enterNumValue();
break;
case '1':
printRectangleOne(N,C);
break;
case '2':
printRectangleTwo(N,C);
break;
break;
case 'Q':
case 'q':
fprintf(stdout, "The program will now quit\n");
exit(1);
default:
break;
}
}
char enterSingleChar()
{
char singleChar = ' ';
fprintf(stdout, "Please enter a single character \n");
scanf("%c", &singleCharC);
return singleChar;
}
int enterNumValue()
{
int numValue;
fprintf(stdout, "Please enter a numerical value between 1 and 15 inclusively \n");
scanf("%d", &numValue);
while(numValue <= 1 || numValue >= 15)
{
fprintf(stdout, "You have entered an invalid num \n");
fprintf(stdout, "Please try again \n");
fprintf(stdout, "Please enter a numerical value between 1 and 15 inclusively \n");
scanf("%d", &numValue);
}
return numValue;
}
void printRectangleOne(int N, char C)
{
int i;
int j;
for(i = 0; i <= N; i++)
{
fprintf(stdout, &C);
for(j = 0; i <= N; i++)
{
fprintf(stdout, &C);
}
}
printf();
}
void printRectangleTwo(int N, char C)
{
}
Итак, какова ваша конкретная проблема? – LSerni
В функции printRectangleOne посмотрите на второй цикл: for (j = 0; i <= N; i ++) Существует сочетание j и i –
Как переменные 'C' и' N' когда-либо меняются? –