Задчи от тема "Drawing Figures with Loops" - C++
Здравейте,
имам две задачи от тази тема които чертаят фигурата от заданието - поне според мен.
Когато ги кача в Judge се оценяват като грешни без да има подсkазване какво е сгрешено. Може ли някой да ми
даде насока къде е проблема.
Конкретно задачите са:
10.House
#include <iostream>
#include <string>
using namespace std;
int main()
{
int num;
cin >> num;
for (int i = 0; i < ((num + 1) / 2); i++)
{
if (num % 2 == 0)
{
int under = (num - 2 - i * 2) / 2;
int star = 2 + i * 2;
cout << string(under, '_');
cout << string(star, '*');
cout << string(under, '_');
cout << endl;
}
else
{
int under = (num - 1 - i * 2) / 2;
int star = 1 + i * 2;
cout << string(under, '_');
cout << string(star, '*');
cout << string(under, '_');
cout << endl;
}
}
for (int i = 0; i < num / 2; i++)
{
cout << string(1, '|');
cout << string((num - 2), '*');
cout << string(1, '|');
cout << endl;
}
return 0;
}
11.Diamond
#include <iostream>
#include <string>
using namespace std;
int main()
{
int num;
cin >> num;
int rows,mRow;
if (num % 2 != 0) //odd
{
rows = num;
mRow = rows / 2 + 1;
for (int i = 0; i < rows; i++)
{
if (i < mRow)
{
int sUnder = (num - 1) / 2 - i;
int mUnder = 2 * i-1;
if (i == 0)
{
cout << string(sUnder, '_');
cout << string(1, '*');
cout << string(sUnder, '_');
cout << endl;
}
else
{
cout << string(sUnder, '_');
cout << string(1, '*');
cout << string(mUnder, '_');
cout << string(1, '*');
cout << string(sUnder, '_');
cout << endl;
}
}
else
{
int sUnder =i - mRow + 1;
int mUnder = num+2*(mRow -i) - 4;
if (i < rows - 1)
{
cout << string(sUnder, '_');
cout << string(1, '*');
cout << string(mUnder, '_');
cout << string(1, '*');
cout << string(sUnder, '_');
cout << endl;
}
else
{
cout << string(sUnder, '_');
cout << string(1, '*');
cout << string(sUnder, '_');
cout << endl;
}
}
}
}
else //even
{
rows = num-1;
mRow = rows/2+1;
for (int i = 0; i < rows; i++)
{
if (i < mRow)
{
int sUnder = (num - 2) / 2 - i;
int mUnder = 2*i;
cout << string(sUnder, '_');
cout << string(1, '*');
cout << string(mUnder, '_');
cout << string(1, '*');
cout << string(sUnder, '_');
cout << endl;
}
else
{
int sUnder = 1+i-mRow;
int mUnder = 2 * (rows-i-1);
cout << string(sUnder, '_');
cout << string(1, '*');
cout << string(mUnder, '_');
cout << string(1, '*');
cout << string(sUnder, '_');
cout << endl;
}
}
}
return 0;
}
Благодаря предварително!!!
Здравейте,
благодаря и на двамата за отговора!
Наистина това е проблема.Не ми беше хрумвало.
Чисто визулано с '_' нещата бяха едно към едно.
Дори сега с '-' това което се появява на конзолата е различно
с показаното в doc файла.
Ще ми остане като полезен опит.
Поздрави!