#c #c #c 14
#c #c #c 14
Вопрос:
int main()
{
int n, i, j;
cin >> n;
for (i = 1; i <= n; i )
{
for (j = 1; j <= n; j )
{
if (i == 0 || i j == n - 1)
{
cout << "*";
}
else
cout << " ";
}
cout << "n";
}
return 0;
}
Ожидаемый результат примерно такой (он должен печатать диагональ 5×5, если я введу номер 5)
* *
* *
*
* *
* *
Комментарии:
1. Код должен иметь отступ, чтобы его можно было прочитать, также должен быть включен фактический вывод, и в вопросе, который задает вопрос, должен быть некоторый текст.
Ответ №1:
Вам не нужно 2 цикла for для рисования шаблона. Достаточно одного цикла.
Просто следите за положением двух звезд.
Нравится:
#include <stdio.h>
int main(void) {
int n = 6;
int starApos = 0;
int starBpos = n - 1;
for (int i=0; i < n; i)
{
if (starApos < starBpos)
{
printf("%*s", starApos, ""); // spaces before A
printf("*"); // A
printf("%*s", starBpos - starApos - 1, ""); // spaces between A and B
printf("*"); // B
}
else if (starApos == starBpos)
{
printf("%*s", starApos, ""); // special case: only 1 *
printf("*");
}
else
{
printf("%*s", starBpos, "");
printf("*");
printf("%*s", starApos - starBpos -1, "");
printf("*");
}
printf("n");
starApos; // Move positions
--starBpos;
}
return 0;
}
Вывод n = 6:
* *
* *
**
**
* *
* *
Вывод n = 5:
* *
* *
*
* *
* *
Ответ №2:
Чтобы правильно сделать первую диагональ, а i j == n - 1
не ставить i j == n 1
. Наконец, добавьте || j == i
, чтобы сделать другую диагональ.
Я также рекомендую вам удалить i == 0
( i
начинается с 1 и только увеличивается, чтобы оно никогда не было 0), добавить в свой код лучший отступ и заменить на #include <bits/stdc .h>
, #include <iostream>
если вам это действительно не нужно.
Ваша программа должна выглядеть следующим образом:
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
for(int i = 1; i <= n; i )
{
for(int j = 1; j <= n; j )
{
if (i j == n 1 || j == i)
cout << "*";
else
cout << " ";
}
cout << "n";
}
return 0;
}
Ответ №3:
Для программы, полностью написанной на C, работает следующий код. Убедитесь, что вы ищете связь между индексами строк и столбцов в каждом *
из X (т. Е. Представьте, что X, который вы формируете, является 2D-массивом).
#include <stdio.h>
int main(void) {
int size = 0;
// Ask user to enter size of x, then scan input
printf ("Enter size: ");
scanf("%d", amp;size);
// Only an odd input can be accepted
if (size > 0 amp;amp; size % 2 != 0) {
for (int row = 0; row < size; row ) {
for (int col = 0; col < size; col ) {
if (row == col) {
//Print one diagonal
printf("*");
} else if (row col == size - 1) {
//Print the other diagonal
printf("*");
} else {
//Print empty spaces
printf(" ");
}
}
//Move to next row
printf ("n");
}
}
return 0;
}