Помогите с простым упражнением по программированию на C - PullRequest
0 голосов
/ 30 ноября 2010

Я новичок в программировании на C, немного затруднившись с упражнением по программированию, я уверен, что это просто для всех, кто знает C, к сожалению, вы должны играть по правилам этого упражнения.1002 * Вот упражнение:

Пусть программа запросит пользователя ввести заглавную букву.Используйте вложенные циклы, чтобы создать рисунок пирамиды, подобный следующему:

    A 

   ABA

  ABCBA

 ABCDCBA

ABCDEDCBA

Шаблон должен распространяться на введенный символ.Например, предыдущий шаблон будет результатом входного значения E. Подсказка: используйте внешний цикл для обработки строк.Используйте три внутренних цикла подряд, один для обработки пробелов, один для печати букв в порядке возрастания и один для печати букв в порядке убывания.

Итак, я получил это далеко:

#include <stdio.h>

int main(void) {

 int rows;
 int spaces;

 char asc;
 char desc;
 char input;

 printf("Please enter an uppercase letter: ");
 scanf("%c", &input);

 for (rows = 'A'; rows <= input; rows++) {
  for (spaces = input; spaces > rows; spaces--) {
   printf(" ");
  }
  for (asc = 'A'; asc <= rows; asc++) {
   printf("%c", asc);
  }
  for (desc = asc - 2; desc >= rows; desc--) {
   printf("%c", desc);
  }
  printf("\n");
 }
 return 0;
}

Ответы [ 2 ]

5 голосов
/ 30 ноября 2010

Вы очень близки:

for (desc = asc - 2; desc >= 'A'; desc--) {

Обратите внимание, что после второго внутреннего цикла, asc равно rows + 1.Затем вы инициализируете desc до rows - 1.Вы должны понять, почему >= rows неверно и не приведет к итерациям.

Правильное условие просто >= 'A'.

0 голосов
/ 11 октября 2017
#include <stdio.h>
#include <string.h>
#define ROW 6

int main() {

  char let = '\0', ch;
  int row;

  scanf("%c", &let);
  for (row = 0; row <= ROW; row++) {
    for (ch = let; let > (ch + row); --ch) {
      for (ch = let; let < (ch + row); ++ch) {
        printf("%c", ch);
      }
      // ch = let;
      printf("\n");
    }
  }
  return 0;
}

Любые комментарии или исправления будут высоко оценены .. Я также новый // ученик;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...