C De For Komutu İle İlgili Kazık Bir Soru
-
ya gençler hoca bi soru sordu kaç gündür uğraşıom yapamadım.bide siz bakın...
soru=klavyeden girilen n tamsayısı kadar satırı olan ,yıldız sembollerinden oluşturulmuş ikizkenar dik üçgeni ekrana çizen programı for komutu kullanarak oluşturunuz.
n=2 n=4
* * gibi...
** **
***
****
-
ben anlamam ama sonuç olarak n 4 se
*
*
*
*
4 tane yıldız var ancak üçgen olabilmesi için
1. * dan sonraki gelenler +1 * olarak giderse üçgen olur
* 1. yıldız
** 2. yıldız +1 *
*** 3. yıldız +2 *
**** 4. yıldız +3 *
buda asp biliyosan eğer şöyle olur belki anlarsın
<%
n2=0 'burada n2 yi 0 a eşitliyoruz
karakter="*" 'ekrana basılacak karakter
for n=1 to 4 'burdaki 4 rakamı formdan girilen rakamı işaret ediyor ben direk oraya 4 koydum amaç 1 den başlayıp girilen değere kadar saydırmak
n2=n2+1 'burada n2 değeri 0 yapmıştık ya bunu +1 ekleyerek döngüde çoğaltıyoruzki 2. sırada 2 yıldız 3. de 3 yıldız koysun
for n3=1 to n2 'burada işte üçgen yaptırmayı hallediyoruz 2. sırada 2 yıldız 3. de 3 yıldız die
response.write ""&karakter&"" 'burada * karakteri basılıyor
next
response.write "<br>" 'burada alt satıra geçiriyoruz
next%>
anlatabildim umarım C bilmiyorum ama mantıken böyle
-
#include <stdio.h>
int main()
{
int a,i,j;printf ("sayi giriniz : ");
scanf ("%d",&a);
for (int i=1;i<=a;i++)
{
for (int j=1;j<=i;j++)
printf ("*");
printf ("\n");
}
scanf ("%d");
}sondaki scanf ("%d"); yerine return 0 koy eğer sorun olursa bende de return 0 yapınca sorun çıkıyo da :S
edit: bu arada sen buna kazık diyosan sınavda yoklamanı verir çıkarsın vallaha
-
öeh c ye bak neymiş o öyle :d bide örnek vermeye kalkıyorum :D :D
-
oldwolf bunu yazdı:
-----------------------------#include
int main()
{
int a,i,j;printf ("sayi giriniz : ");
scanf ("%d",&a);
for (int i=1;i<=a;i++)
{
for (int j=1;j<=i;j++)
printf ("*");
printf ("\n");
}
scanf ("%d");
}sondaki scanf ("%d"); yerine return 0 koy eğer sorun olursa bende de return 0 yapınca sorun çıkıyo da :S
edit: bu arada sen buna kazık diyosan sınavda yoklamanı verir çıkarsın vallaha
-----------------------------
eywallah hoca bölüm bilgisayar deil makine müh. ilk defa c görüoz ondandır :) -
Oldwolf'ün komutları çalışmaz. Altalta yazdırır hep. Doğrusu böyle olucak :
#include <stdio.h>
int main()
{
int a, i, j;
printf ("Sayiyi gir : ");
scanf ("%d", &a);
for(i=1;i<=a;i++)
{
for (j=1;j<=i;j++)
{
printf ("*");
}
printf ("\n");
}
getch();
}Boşluk karakteri yazdıran "printf("\n");" komutunu içteki for döngüsünde değil de dıştakinde kullanmak gerekir.
-
Buyrun bu da python hali, fikir verebilir :) Ek olarak yıldızların sol tarafına numara yazdırdım. Bu arada, bu zor geliyorsa ileride göreceğin konuların altından kalmayacaksın gibi görünüyor..
[~/tmp]> ./dik-ucgen.py 7
0
1 *
2 * *
3 * * *
4 * * * *
5 * * * * *
6 * * * * * *
7 * * * * * * *
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
def dik_ucgen(num):
# range(4) 0 ile başlar, * yazdırmak için 1'den başlatmak zorundayız
for i in range(num+1):
print "%d\t" % i,
for x in range(i):
# print'in yanındaki virgüle dikkat ediniz.
# döngü boyunca alt alta değil de, yan yana yazdırmasını sağlar
print "*",
print ""
if __name__ == '__main__':
if not len(sys.argv) >= 2:
print 'Parametre olarak sayı giriniz.'
sys.exit(1)
# integer olup olmadığını kontrol et
try:
num = int(sys.argv[1])
except ValueError:
print 'Parametre bir sayı olmalıdır'
sys.exit(1)
dik_ucgen(num)
-
StigmatA bunu yazdı:
-----------------------------Oldwolf'ün komutları çalışmaz. Altalta yazdırır hep. Doğrusu böyle olucak :
#include
int main()
{
int a, i, j;
printf ("Sayiyi gir : ");
scanf ("%d", &a);
for(i=1;i<=a;i++)
{
for (j=1;j<=i;j++)
{
printf ("*");
}
printf ("\n");
}
getch();
}Boşluk karakteri yazdıran "printf("\n");" komutunu içteki for döngüsünde değil de dıştakinde kullanmak gerekir.
-----------------------------adam sanki bana compiler :) denedin mi hocam? o senin eklediğin parantezlere gerek yok for komutu altındanki satırı parantez koysan da koymasan da kapsar ama altta 1 yerine 5 printf vb. olsaydı o parantez koyduğun for'da o zaman haklıydın, dene istersen çalışıyo yazdığım.
-
Hocam c/p yaptım olmadı. Alt alta yazdırdı. Ufak bi değişiklik yaptım bu sefer yan yana yazdırdı. Demek ki derleyicilerde farklılık var. Kusura bakma..
Metal RulLz :D
-
olur öle bu derleyicilerin saçma sapan hareketleri, bende de getch () muhabbeti olmuyo sonuna scanf ("&d") yazıom öle oluyo falan filan, metallica gelecekmiymis yaw kesin mi o iş :P
-
Bilmiyorum ama gelirse diye biriktirmeye başladım ben bilet parasını. 79 lira diye bi söylenti var :) Konuyu da amacından saptırdık bu arada :)