c++ kodunda dışarıdan girilecek bir değere aralık bırakmak ve bu aralığın dışında bir değer yazmamasını sağlamak mümkün müdür ? Örneğin 0-50 arasında sınır koyarsak kullanıcı bu aralıkta değer giremeyecek.

soruldu: 21 Eki '14, 08:19

stoler's gravatar image

stoler
36111113
cevap kabul oranı: 0%


Anladığım kadarıyla belirli bir aralıkta sayı girilmesini istiyorsun aşağıdaki yazdığım kodla kullanıcıdan istenilen aralıkta değer alınmasını sağlayabilirsin:

#include <iostream>
using namespace std;

int main(){

int sayi;
//kullanıcıdan sayı istenir
cout << "sayi: ";
cin >> sayi;

//kullanıcının girdiği değer 0-50 arasındaysa tekrar girilmesi istenir
while (sayi >= 0 && sayi <= 50){
      //uyarı      
      cout << "Lutfen belirlenen aralikta sayi giriniz!" << endl;
      //kullanıcıdan sayıyı tekrar girilmesi isteniyor
      cout << "sayi: ";
      cin >> sayi;
      }
      //girilen sayı istenilen aralıktaysa yazdırılıyor
      cout << sayi;

return 0;
}
permanent link

cevaplandı: 21 Eki '14, 15:43

emrecan-oztas's gravatar image

emrecan-oztas
4.1k62146
cevap kabul oranı: 24%

değiştirildi: 21 Eki '14, 15:49

#include <iostream>
using std::cout;
using std::cin;

main() {
    int x;  
    cout<< "Sayiyi giriniz > ";

    cin >> x;

    if ( x >=0 && x<= 50) {
    cout << x;
    }
    else {
        cout << "Girdiginiz deger tanimli degil!";
  }
}

Mümkündür.Bu şekilde basit bir kontrol yapabilirsiniz.Ben aslında C++ bilmiyorum.Biraz C bilgim vardı.Ufak bir araştırmayla bunları buldum.Soru sormadan önce biraz araştırma yapmanız yararınıza olur.

İyi çalışmalar.

permanent link

cevaplandı: 21 Eki '14, 08:43

loser's gravatar image

loser
2066915
cevap kabul oranı: 40%

Kastettiğim şey değeri yazamıyor olmamız böyle yapmayı biliyorum hani mesela isim girilmesi gereken bir yere siz sayı yazmaya çalışınca yazdırmaz ve hata sesi verir ya onun tarzı birşeyden bahsediyorum hiç yazamayacağız kabul etmeyecek yani

permanent link

cevaplandı: 21 Eki '14, 16:26

stoler's gravatar image

stoler
36111113
cevap kabul oranı: 0%

C'de böyle yapabilirsiniz;

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

int main() {

int ch, sum = 0;
printf("Girilen Sayi ..: ");

for (;;) {
    while (isdigit(ch = getch()) && (sum * 10) + (ch - '0') <= 50) {
        sum *= 10;
        sum += (ch - '0');
        putchar(ch);
    }
}

system("pause");
return 0;

}

while parantezi içerisindeki "isdigit(ch = getch())" kısmında girilen değer (tek karakter olarak) sorgulanıyor. Örneğin burada "isdigit" fonksiyonu yerine "isalpha" fonksiyonunu kullanırsan (ve yanındaki 0-50 arası değer girme örneği için yapılan aritmetik işlemin ifadesini silersen) sadece harf karakterlerinin girilmesine izin vermiş olursun.

permanent link

cevaplandı: 06 Kas '14, 20:11

alpercolakel's gravatar image

alpercolakel
86347
cevap kabul oranı: 0%

Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×45
×8
×1
×1
×1

Soruldu: 21 Eki '14, 08:19

Görüntüleme: 1,665 kez

Son güncelleme: 06 Şub '15, 06:43

powered by BitNami OSQA