C programlama'da girilen değere kadar döndürme

Katılım
12 Eylül 2015
Mesajlar
245
Çözümler
1
Yer
Andromeda
Daha fazla  
Cinsiyet
Erkek
Arkadaşlar, C programlamada girdiğim değere kadar döndürmeyi nasıl yapabilirim? Örnek verirsek;
1.
12.
123.
1234.
12345.
 
Sanırım böyle bir şey istiyorsunuz.
Anlamadığınız bir şey olursa sorabilirsiniz.

Kod:
#include <stdio.h>

int main(){
   
    int num = 0;
   
    printf("Deger giriniz: ");
    scanf("%d", &num);
   
    for(int i = 1; i <= num; ++i){
        for (int j = 1; j <= i; ++j){
            printf("%d", j);
        }
        printf("\n");
        // nokta koyulacaksa
        // printf(".\n");
    }

    return 0;
}
 
Döngülerin üzerinden geçmenizi tavsiye ederim, zira istediğiniz şey çok basit.
 

Nokta ve \n loop disinda olmali sanki. Kac girilirse girilsin 1 tane var.
Benim hatam. input 1 defa girilecek gibi duruyor.
 
yardımınız için teşekkür ederim ama verdiğiniz kodlarınızı buna uyarlayamadım.
Kod:
int main(){
    int a,giris;


        printf("Sayi Giriniz:");
        scanf("%d",&giris);

        for(a = 0; a<=giris*2-1; a=a+2){
                printf( "%d ", a);
    }
    for(a = giris; a<giris*2; a=a+1){
            printf( "%d ", a);
    }
    {
           printf("\n");

    return 0;
}
}
 
stdio.h kütüphanesini eklememişsiniz.
Değişkenleri ilklendirmek (ilk değerlerini vermek) iyi bir alışkanlıktır. Çeşitli durumlarda sapıtmalara yol açabiliyor.
Girintilere dikkat edin. Mesela ilk printf, scanf vefor döngüsü niyeyse 2 Tab kadar içeride.
Şu ana kadar dediklerimi düzelttim. Hali böyle.
Kod:
#include <stdio.h>

int main(){
    int a = 0;
    int giris = 0;

    printf("Sayi Giriniz:");
    scanf("%d",&giris);

    for(a = 0; a<=giris*2-1; a=a+2){
        printf( "%d ", a);
    }
    
    for(a = giris; a<giris*2; a=a+1){
        printf( "%d ", a);
    }
    
    {
           printf("\n");

    return 0;
    }
}

Alttaki printf ve return 0; boş bir scope'un içinde. Gerek yok.
Koda bu halde bakınca çalışıyor. Sayı istiyor. 5 girdim. Sonuç böyle.
0 2 4 6 8 5 6 7 8 9
Amacınızın bu olup olmadığını bilmediğim için bir şey diyemiyorum.

Kodu incelersem; a'nın döngü değişkeni olduğunu fark ediyorum. Benim başta attığım koddaki gibi döngü içerisinde tanımlarsanız o scope dışında tanımsız olur. O anda işinizi görür ve silmiş olursunuz. Öyle daha rahat bence. Çoğu iyi kişi de öyle yapar.
a'nın giris değişkeninin 2 katından 1 eksik olana kadar devam etmesini sağlamışsınız. Her dönüşte a'nın değerini 2 artırmışsınız. Bu da çıktımızdaki 0, 2, 4, 6, 8'lik kısım oluyor. giris değişkenini 5 olarak verdiğim için a değişkeni 9'a küçük eşit olduğu sürece cevap etti. 10 olunca bıraktı, çıktı döngüden.
İkinci döngüde a değişkenine giris değişkenini atıyorsunuz. giris değişkeninin 2 katından küçük olduğu sürece devam ediyor. Her dönüşte a'nın değerini 1 artırmışsınız. Bu da çıktımızda geriye kalan 6, 7, 8, 9 kısmını yapıyor. a değişkeni 10 olunca giris'in 2 katından, yani 10'dan küçük olmadığı için döngü dışına çıkılıyor.
Sonra bir adet printf("\n"); var. Gelecek işlemlerde alt satıra geçmiş olmak için.

Sizin istediğiniz bunu yapması mıydı? Öyle değilse ne yapmaya çalıştınız?
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…