Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 19.11.2012
Сообщений: 11
1

Неправильно выводится рисунок из звездочек

19.11.2012, 14:02. Показов 1092. Ответов 10
Метки нет (Все метки)

Доброго времени суток, имеется задание: отобразить следующий вид последовательности используя While:
* * * *
** ** ****
***** ** *
******* *
имеется код, который выводит только последние 3 строки, помогите пожалуйста найти ошибку, заранее благодарен))



C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include "stdafx.h"
#include <iostream>
#include <conio.h>
 
using namespace std;
 
int main(array<System::String ^> ^args)
{
    
    char a[4][10] = {'*',' ',' ',' ','*',' ','*',' ',' ','*',
                     '*','*',' ','*','*',' ','*','*','*','*',
                     '*','*','*','*','*',' ','*','*',' ','*',
                     '*','*','*','*','*','*','*',' ','*',' ',};
int i=0;
 
     while (i<4)
    {
    i++;
    cout << '\n';
    int j=0;
    while (j<10)
    {       
    cout << a[i][j];
    j++;
    }
}
     getch();
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.11.2012, 14:02
Ответы с готовыми решениями:

Рисунок из звездочек
Здравствуйте!!! Помогите пожалуйста нарисовать круг из *. Пользователь из данных должен вводить...

Почему выводится именно такое количество звездочек?
Здравствуйте! обясните почему в первой программе сначала выводится не 2 звездочки, а одна ===&gt; D E...

Создать процедуру, в которой выводится на экран определённое количество звёздочек
1. процедуру с параметром- создать процедуру, в которой выводится на экран определённое количество...

Неправильно вставляется рисунок в поле OLE
есть поле контейнер OLE но и вставка напрямую через таблицу и через форму дает изображение в форме...

10
Модератор
Эксперт по электронике
8380 / 6225 / 836
Регистрация: 14.02.2011
Сообщений: 21,606
19.11.2012, 14:07 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Цитата Сообщение от NOOBrus Посмотреть сообщение
char a[4][10] = {'*',' ',' ',' ','*',' ','*',' ',' ','*',
'*','*',' ','*','*',' ','*','*','*','*',
'*','*','*','*','*',' ','*','*',' ','*',
'*','*','*','*','*','*','*',' ','*',' ',};
массив инициализирован неправильно
если двумерный так и инициализируй
C++
1
2
3
4
5
char a[4][10] = 
{{'*',' ',' ',' ','*',' ','*',' ',' ','*'},
{'*','*',' ','*','*',' ','*','*','*','*'},
{'*','*','*','*','*',' ','*','*',' ','*'},
{'*','*','*','*','*','*','*',' ','*',' '}};
0
1 / 1 / 0
Регистрация: 19.11.2012
Сообщений: 11
19.11.2012, 14:08  [ТС] 3
Тоже самое, только с For, работает, вот код

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include "stdafx.h"
#include <iostream>
#include <conio.h>
 
using namespace std;
 
int main(array<System::String ^> ^args)
{
    int i,j;
    char a[4][10] = {'*',' ',' ',' ','*',' ','*',' ',' ','*',
                     '*','*',' ','*','*',' ','*','*','*','*',
                     '*','*','*','*','*',' ','*','*',' ','*',
                     '*','*','*','*','*','*','*',' ','*',' ',};
 
     for(i=0;i<4;i++)
{
    cout << '\n';
    for(j=0;j<10;j++)
    {
    cout << a[i][j];
    }
}
     getch();
    return 0;
}
0
178 / 161 / 38
Регистрация: 08.10.2012
Сообщений: 423
19.11.2012, 14:10 4
Цитата Сообщение от NOOBrus Посмотреть сообщение
C++
1
2
3
4
char a[4][10] = {'*',' ',' ',' ','*',' ','*',' ',' ','*',
* * * * * * * * * * *'*','*',' ','*','*',' ','*','*','*','*',
* * * * * * * * * * *'*','*','*','*','*',' ','*','*',' ','*',
* * * * * * * * * * *'*','*','*','*','*','*','*',' ','*',' ',};
вроде так должно быть
C++
1
2
3
4
char a[4][11] = {{'*',' ',' ',' ','*',' ','*',' ',' ','*','\0'},//хотя возможно '\0' сам добавляется
* * * * * * * * * * {*'*','*',' ','*','*',' ','*','*','*','*','\0'},
* * * * * * * * * * *{'*','*','*','*','*',' ','*','*',' ','*','\0'},
* * * * * * * * * * {*'*','*','*','*','*','*','*',' ','*',' ','\0'}};

Цитата Сообщение от NOOBrus Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
int i=0;
while (i<4)
* * {
* * i++;
* * cout << '\n';
* * int j=0;
* * while (j<10)
* * { * * * 
* * cout << a[i][j];
* * j++;
* * }
}
C++
1
2
3
4
int i=0;
cout<<endl;
while (i<4)
* * cout << a[i++]<<endl;
0
Модератор
Эксперт по электронике
8380 / 6225 / 836
Регистрация: 14.02.2011
Сообщений: 21,606
19.11.2012, 14:11 5
Цитата Сообщение от NOOBrus Посмотреть сообщение
Тоже самое, только с For, работает,
и даже ошибку вот на это
Цитата Сообщение от NOOBrus Посмотреть сообщение
' ',};
не дает?
после последнего элемента не нужна запятая
0
1 / 1 / 0
Регистрация: 19.11.2012
Сообщений: 11
19.11.2012, 14:13  [ТС] 6
Цитата Сообщение от ValeryS Посмотреть сообщение
и даже ошибку вот на это

не дает?
после последнего элемента не нужна запятая

нет не выдает ошибку
0
Модератор
Эксперт по электронике
8380 / 6225 / 836
Регистрация: 14.02.2011
Сообщений: 21,606
19.11.2012, 14:21 7
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Цитата Сообщение от MrGrig Посмотреть сообщение
'\0'},//хотя возможно '\0' сам добавляется
Не добавится там символы а не строки
да и выводит он символы
Цитата Сообщение от NOOBrus Посмотреть сообщение
cout << a[i][j];
Добавлено через 3 минуты
Цитата Сообщение от NOOBrus Посмотреть сообщение
int j=0;
вынеси ка это к
Цитата Сообщение от NOOBrus Посмотреть сообщение
int i=0;
а в теле только обнуляй
хотя странно код идентичный. Единственную ошибку что я увидел, я указал

Добавлено через 4 минуты
стоп
вот она ошибка
Цитата Сообщение от NOOBrus Посмотреть сообщение
while (i<4)
* * {
* * i++;
* * cout << '\n';
* * int j=0;
* * while (j<10)
* * { * * *
* * cout << a[i][j];
у тебя на первом же проходе * i будет 1
и обращатся ты будешь к a[1][j];
вот это
i++;
ставь после второго while
2
1 / 1 / 0
Регистрация: 19.11.2012
Сообщений: 11
19.11.2012, 14:25  [ТС] 8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 int i=0;
     while (i<4)
    {
    cout << '\n';
    int j=0;
    while (j<10)
    {
    cout << a[i][j];
    j++;
    }
    i++;
}
     getch();
    return 0;
}

спасибо большое, все работает
0
Модератор
Эксперт по электронике
8380 / 6225 / 836
Регистрация: 14.02.2011
Сообщений: 21,606
19.11.2012, 14:27 9
Цитата Сообщение от NOOBrus Посмотреть сообщение
спасибо большое, все работает
Для "Спасибы" кнопка есть
0
1 / 1 / 0
Регистрация: 19.11.2012
Сообщений: 11
19.11.2012, 14:28  [ТС] 10
Уже
0
1313 / 975 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
19.11.2012, 14:41 11
Цитата Сообщение от ValeryS Посмотреть сообщение
Для "Спасибы" кнопка есть

Не по теме:

ValeryS я тебе тоже поставил спасибо, но вообще по правилам так делать нельзя пункт 5.10

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.11.2012, 14:41

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Массив неправильно выводится
вообщем на вход подаются 0 и 1 программа должна выдавать на выходе вот такие знаки * + -...

Массив выводится неправильно
пишу в Visual Studio вот код: for(int i=0; i&lt;5; i++) { printf(&quot;Введите %d...

Неправильно выводится дробь
По-моему, код написа правильно. Однако в результате должна появиться дробь, а выводятся только...

Неправильно выводится список
Помогите разобраться. Почему не получается использовать связной список где не используются...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.