Попытка напечатать шаблонную строку «X» - PullRequest
0 голосов
/ 09 марта 2020

Ниже мой окончательный код, но вывод не был напечатан в консоли. Пожалуйста, помогите мне найти ошибку.

#include<stdio.h>
    #include<string.h>

    int main()
    {
        char s[10] = "Gokul";
        int len = 0;

        while(s[len] != '\0');
        len++;

        for(int i = 0; i < len; i++){
            for(int j = 0; j < len; j++){
                if(j==i || j == (len-i-1)){
                    printf("%c", s[i]);
                }
                else printf(" ");
            }
            printf("\n");
        }
        return 0;
    }

Ответы [ 2 ]

1 голос
/ 09 марта 2020

Значение выражения

while(s[len] != '\0');

равно

while (s[len] != '\0') {

}

Таким образом, в вашем случае выражение

 while (s[len] != '\0');
 len++;

будет расширено до

while (s[len] != '\0') {

}
len++;

, что неверно, исходя из логики c.

Оператор len++; должен входить в условие while.

Так что вы можете использовать как ниже

  while (s[len] != '\0')
    len++;

или

  while (s[len] != '\0') {
    len++;
  }

Итак, я вставляю здесь рабочий код

#include<string.h>

int main() {
  char s[10] = "Gokul";
  int len = 0;

  while (s[len] != '\0') {
    len++;
  }

  printf("len=%d\n", len);
  for (int i = 0; i < len; i++) {
    for (int j = 0; j < len; j++) {
      if (j == i || j == (len - i - 1)) {
        printf("%c", s[i]);
      } else printf(" ");
    }
    printf("\n");
  }
  return 0;
}

Надеюсь, это поможет вам.

1 голос
/ 09 марта 2020
 while(s[len] != '\0');
 len++;

Ошибка здесь.
Тело вашего l oop равно пусто
В следующий раз используйте отладчик.

...