PDA

View Full Version : استفاده از طول میدان برای ترسیم این شکل



Jason.Bourne
شنبه 28 دی 1387, 17:40 عصر
من برای ترسیم شکل زیر میخوام از طول میدان و تابع printf استفاده کنم. در واقع راه دیگری به ذهنم نمی رسد.

http://img.majidonline.com/pic/174248/untitled.GIF

اما نمیدونم چطور طول میدان را بصورت داینامیک ایجاد کنم. مثلا در دفعه اول که printf اجرا میشه طول میدان 5 باشد و در دفعه بعد که حلقه اجرا میشه طول میدان 4 باشه و الی آخر.

ممنون میشم راهنمایی کنید و احیانا، اگر روش صحیح تری برای رسم این شکل می شناسید.

Elrond
شنبه 28 دی 1387, 18:05 عصر
این کد برنامه است؛ اگر مشکلی داشتید بگید.


#include <stdio.h>
#include <conio.h>
int main()
{
int num,temp;
scanf("%d",&num);
temp=num;
for(int i=1;i<=2*num;i+=2)
{
for(int j=0;j<temp-1;j++)
printf(" ");
for(int j=0;j<i;j++)
printf("*");
printf("\n");
temp--;
}
getch();
return 0;
}

Jason.Bourne
شنبه 28 دی 1387, 18:14 عصر
کد شما بعد از اینکه چند تا خطا داشت، به کد زیر تغییر کرد. اما اون چیزی که مد نظر هست، رسم نکرد و وارد یک حلقه بینهایت شد.


#include <stdio.h>
#include <conio.h>
int main()
{
int num,temp, j;
scanf("%d",&num);
temp=num;
for(int i=1;i<=2*num;i+=2)
{
for(int j=0;j<temp-1;j++)
printf(" ");
for(j=0;j<i;j++)
printf("*");
printf("\n");
temp--;
}
getch();
return 0;
}

Elrond
شنبه 28 دی 1387, 18:20 عصر
فکر کنم به خاطر کامپایلر باشه.
چون من همین الان هر دو کد رو کامپایل کردم و مشکلی نداشتند.

Jason.Bourne
شنبه 28 دی 1387, 18:44 عصر
نظر دیگر دوستان چی هست؟

kitten
شنبه 28 دی 1387, 18:53 عصر
سلام
من مظورتون را درست متوجه نشدم آیا می خواهید این طوری چا‍‍ب بشه؟
*
**
***
****
یا این که به شکل دیگه ؟
اگه می خواهید به شکل دیگه چا‍ب کنید رابطه بین تعداد ستاره ها چیه؟ و این متغیر num چیه دیگه؟

Jason.Bourne
شنبه 28 دی 1387, 18:57 عصر
سلام
من مظورتون را درست متوجه نشدم آیا می خواهید این طوری چا‍‍ب بشه؟
*
**
***
****
یا این که به شکل دیگه ؟


شما نصف شکل را ترسیم کردید. اون چیزی که مد نظر من هست شکل زیر هست.
http://img.majidonline.com/pic/174248/untitled.GIF


اگه می خواهید به شکل دیگه چا‍ب کنید رابطه بین تعداد ستاره ها چیه؟ و این متغیر num چیه دیگه؟

رابطه بین ستاره این هست که در هر سطر 2 ستاره اضافه میشه.


این متغیر num چیه دیگه؟
این متغییر در برنامه ای که دوست عزیزمون Elrond در جواب من نوشته اند وجود دارد.

kitten
شنبه 28 دی 1387, 19:11 عصر
سلام دوست عزیز این را امتحان کن
می تونی این عدد ۷ را به هر عددی که می خواهی تغییر بدهی
یعنی اگه می خوای ۹ تا ستاره چا‍ ب بشه باید ۷ را ۹ کنی


#include<iostream.h>
int main() {
for (int i = 1;i<=7;i+=2) {
int j = 7 - i;
j = j /2;
for (int k=1;k<=j;k++) {
cout<<" ";
}
for (int h=1;h<=i;h++) {
cout<<"*";
}
cout<<"\n";
}
return 0;
}

Jason.Bourne
شنبه 28 دی 1387, 19:22 عصر
متوجه خطوط زیر نمی شوم.


for (int i = 1;i<=7<i+=2) {



cout<<" ";

پ.ن
کد بالا برای ++C هست یا C ؟

kitten
شنبه 28 دی 1387, 19:25 عصر
این دو تا خط یه اشتباه کوچک داشت که رفعش کردم تا بست بالا
و میتونی به جای cout از printfاستفاده کنی