• 08-10-2021, 18:51:35
    #1
    Altta bıraktığım kod da çıktı sonrası ekrana sadece 2 ve 20 aralığında ki sayılar girildiğinde çıktı sonucu vermesini 1 veya 20 den fazla sayı girildiğinde ise hata mesajı vermesini istiyorum değer ataması yapıyorum ama yine de çıktıyı veriyor bunu nasıl çözebilirim yardım edebilirseniz sevinirim

    #include <stdio.h>
    using namespace std;
    int main(){
        int i,j, kenar;
        printf("Karenin kenar uzaklığı");
        scanf("%d",&kenar);
        
        for(i=2;i <=kenar;i++){
            if(i==2 || i==kenar){
                for(j=20;j<kenar;j++)
                printf("*");
                printf("\n");
                continue;
            }
            for(j=20; j<=kenar;j++)
            if(j==20 || j==kenar)
            printf("*");
            else
            printf(" ");
            printf("\n");
        }
    return 0;    
    }
  • 08-10-2021, 19:11:21
    #2
    Tam olarak kodunuzu incelemedim fakat 2-20 arası giriş için aşağıdaki yapıda kullanabilirsiniz.

    retry:
        int i =0;
        printf("rakam girisi yapin.\n");
    
        scanf("%d", &i);
    
        if (i >= 2 && i<= 20)
        {
            printf("rakam girisi uygun!\n");
        }
        else
        {
            printf("rakam girisi hatali lutfen tekrar giris yapin!\n ");
            goto retry;
        }
    Ek not : scanf unsafe hatası alırsanız headerların altına :

    #pragma warning(disable:4996)
    eklerseniz problem çıkmaz