ورود

View Full Version : مبتدی: مشکل در code



Galexy
سه شنبه 15 اسفند 1391, 20:20 عصر
سلام .تو حل این مسئله مشکل پیدا کردم .code مسئله رو نوشتم فقط یه جا رو نتونسم .
مسئله:
برنامهاي بنويسيد كه سايز يك ضلع چهارگوش را دريافت و يك چهارگوش توخالي براساس آن سايز از
ستارهها (*) و فاصلهها چاپ كند. برنامه بايد براي ترسيم چهارگوشهاي با سايز 1 تا 20 عمل كند. براي مثال،
اگر سايز 5 وارد برنامه شود، بايستي خروجي زير چاپ شود.
*****
* *
* *
* *
*****
اینم code که من نوستم:
#include <iostream>
#include <string>

using namespace std;


int main()
{

int size;
int counter;
cin >> size;

if ( size >= 1 && size <= 20)
{
for ( counter = 0; counter < size; counter ++)
{
cout << "*";
}
cout << endl;
for ( counter = 0; counter < (size-2);counter++)
{
cout << "*\t*" << endl; // مشکل اینچاست که فاصله باید اندازه سایز وارد شده باشه
}
for ( counter = 0; counter < size; counter ++)
{
cout << "*";
}

}

return 0;
}
مشکل تو فاصله بین ستاره هاست.

maktoom
سه شنبه 15 اسفند 1391, 21:32 عصر
سلام
اگر سطر اولی و آخری نبود در باقی سطرها، ستاره اول رو بنویس بعد n-1 جای خالی بعد آخرین ستاره در سطر.
عبارت شرط رو جوری تنظیم کنید که این کار رو برآورده کنه.

بهروز عباسی
سه شنبه 15 اسفند 1391, 21:45 عصر
درود
#include <iostream>
#include <string>

using namespace std;


int main()
{

int size;
int counter;
cin >> size;

if ( size >= 1 && size <= 20)
{
for ( counter = 0; counter < size; counter ++)
{
cout << "*";
}
cout << endl;


for ( counter = 0; counter < (size-2);counter++)
{
cout << "*";
for (int i=0;i<size-2;i++)cout << " " ;
cout << "*" << endl;

}


for ( counter = 0; counter < size; counter ++)
{
cout << "*";
}
cout << endl;
}

return 0;
}

موفق باشید.

Galexy
سه شنبه 15 اسفند 1391, 22:30 عصر
ممنون ممنون.