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

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;
}
 
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;
}

Nokta ve \n loop disinda olmali sanki. Kac girilirse girilsin 1 tane var.
Benim hatam. input 1 defa girilecek gibi duruyor.
 
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;
}
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?
 
Uyarı! Bu konu 5 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Technopat Haberler

Yeni konular

Geri
Yukarı