PDA

View Full Version : درخواست کمک برای برنامه رسم ستاره ها



V!ST@_MOB!LE
دوشنبه 02 آذر 1388, 01:15 صبح
با سلام خدمت اساتید .

قبلا در پستی بنده در مورد این برنامه سوال پرسیده بودم که چگونه می توانم این برنامه را بنویسم که متاسفانه به دلیل عدم رعایت قوانین پست بسته شد .البته جوابی از طرف یکی از اعضا داده شد که به قدری حرفه ای پاسخ داده شده بود که درک آن برای بنده سخت بود .

بنده می خواهم برنامه ای بنویسم که با استفاده از حلقه ی FOR خروجی زیر را چاپ کند .



*
***
*****
*******
*********



البته تا یک جا پیش رفتم که بقیه ی آن نیازمند کمی راهنمایی است .
تا به اینجا که کد زیر را نوشته ام :



# include <stdio.h>
# include <conio.h>
int main(){
int khat = 1 ,counter=5 , space = 1 ;
char star= '*';
clrscr();
for (khat = 1;khat <=5 ; khat++){
for (space = 1 ;space <=counter ; space++)
printf (" ");

printf ("*\n",star);

counter--;


}

getch ();
return 0;
}

تقریبا نصف راه را رفته ام و خروجی شده است این :

http://www.img98.com/images/643ctwqudoqzkg4sxpsd.png


حالا سوال من اینجاست چه حلقه ای به کار ببرم که زمانی که با دستور \n به خط بعدی می رود 2 ستاره به تعداد ستاره های قبلی اضافه کند ؟

خیلی هم فکر کردم اما چون بسیار مبتدی هستم در توان بنده نبود .

ممنون .
منتظر راهنمایی دوستان هستم .:بوس::بوس:

tdkhakpur
دوشنبه 02 آذر 1388, 01:28 صبح
فقط مطالعه....


# include <conio.h>
int main()
{
int khat = 1 ,counter=5 , space = 1 , stars=1;
char star= '*';
clrscr();
for (khat = 1; khat <=5 ; khat++){
printf ("\n ");
for (space = 1 ;space <=counter ; space++)
printf (" ");
counter--;
for (int i = 1 ;i<=stars; i++)
printf ("%c",star);
stars+=2;
}
getch ();
return 0;
}

V!ST@_MOB!LE
دوشنبه 02 آذر 1388, 02:26 صبح
بسیار و بسیار ممنون . اگر یک توضیح کوچک هم بدهی که ان وقت نور الا نور کردی !

البته یک چیزهایی فهمیدم و تغییراتی را هم دادم بهش . اما یک توضیح کتابی برای بعد ها کمک خواهد کرد به بنده . ممنون و سپاسگذار .

tdkhakpur
دوشنبه 02 آذر 1388, 12:02 عصر
خوب داخل برنامه شما براي جاهاي خالي به درستي حلقه تشكيل داده بوديد ولي در مورد ستاره همانطور كه شما هم استحضار داريد ستاره ها بصورت 1و 3و 5و 7و 9و به همين ترتيب زياد ميشوند لذا stars را به اضافه 2 ميكنيم.

one hacker alone
چهارشنبه 04 آذر 1388, 02:59 صبح
وای وای وای چه خبره فکر نمیکنید با کد های کمتری میتونیم این کار رو بکنیم
استفاده از سه حلقه درسته ولی شما یکم شلوغش کردین

tdkhakpur
چهارشنبه 04 آذر 1388, 11:58 صبح
وای وای وای چه خبره فکر نمیکنید با کد های کمتری میتونیم این کار رو بکنیم
استفاده از سه حلقه درسته ولی شما یکم شلوغش کردین
نه فدایت شوم اگر منظور شما من هست فقط برنامه ایشان را اصلاح کردم و نخواستم الگوریتم ایشان بهم بخورد.
آفرین:لبخندساده:

بانوی ایران
پنج شنبه 05 آذر 1388, 03:08 صبح
#include <stdio.h>




#include <conio.h>


int main(void)


{


int line, space, star, N, N1;


printf ("enter N\n");

scanf ("%d", &N);

for(line=0; line<=N; line++)
{
for(space=1; space<=N-line; space++)
{
printf (" ");
}
for(star=1; star<=2*line-1; star++)
{
printf ("*");
}
printf ("\n ");
}
for (line=N-1; line>=0; line--)
{
for(space=N-line; space>=1; space--)
{
printf(" ");
}
for(star=2*line-1; star>=1; star--)
{
printf("*");
}
printf("\n ");
}
getch ();
return 0;
}














همینجوری زدم
این برنامه ستاره ها رو به صورت لوزی چاپ میکنه