C++ Yazılım Problemi

VorBow

Centipat
Katılım
21 Mayıs 2020
Mesajlar
13
Merhabalar,

C++ bir yazılım yazmam gerek, talimatlar şu şekilde;

Kullanıcı -1 yazana kadar kullanıcıdan sayı almaya devam eden ve en büyük ve en küçük sayıyı gösteren bir program yazın.

Benim yazdığım kod şu şekilde:

C++:
#include <stdio.h>

int main()
{
    printf("*********************************************\n");
    printf("Kullanici -1 yazana kadar program calisacak.\n");
    printf("*********************************************\n");
   
    int sayi, büyüksayi = 0, kücüksayi = 999999;

        for(int i;; i++)
    {
        printf("%d. sayiyi giriniz:",i+1);
        scanf("%d",&sayi);
    }
        if (sayi > büyüksayi)
        {
            büyüksayi = sayi;
        }
        if (sayi < kücüksayi)
        {
            kücüksayi = sayi;
        }
        if(sayi==-1)
        break;


    printf("Büyük sayi:%d\nKücük sayi is:%d",büyüksayi,kücüksayi);

    return 0;
}

Bu şekilde yazdığımda -1 yazınca program kapanıyor ama en küçük sayıyı da -1 olarak gösteriyor. Program en küçük sayıyı -1 olarak göstermemesi gerekiyor. Bunu nasıl düzeltebilirim?
 
Son düzenleyen: Moderatör:
"if (sayi < kücüksayi && sayi != -1 )" bu şekilde işini görür sanırım.
 
C++ demişsin ama örnek kodun C'de.

Kod:
#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;

int main() {

    auto value{ 0 };
    vector<int> arr;

    cout << "Sayi gir: " << endl;

    while (cin >> value) {
        if (-1 == value) {
            break;
        }

        arr.push_back(value);
    }

    sort(arr.begin(), arr.end());

    cout <<endl<< "En kucuk: " << arr[0] << " En buyuk: " << arr.back() << endl;

    return 0;
}
 
Ne yapılması isteniyor?Anlayamadım.-1 de kapanacak,en küçük sayı nedir?

Örneğin kullanıcı 5 sayı girdi; 15,25,30,40,50 ardından -1 yazıp programı kapattı. Programın göstermesi gereken en büyük:50 en küçük:15 ama program en küçüğü -1 olarak gösteriyor.

"if (sayi < kücüksayi && sayi != -1 )" bu şekilde işini görür sanırım.

Denedim ama bu sefer program kapanmadı.


Hocam, Dev-C++ 5.11 kullandırtıyor ve sizin yazdığınız kodların hiçbirini göstermedi yani yazdığınız kodları fazla anlayamadım.

Aradaki "break"i sil ve öyle dene.

Bu sefer -1 yazınca program kapanmadı.

If döngülerini for döngüsü içine al ve öyle dene.

Dediğiniz gibi yaptım program -1 yazınca kapanıyor fakat en küçük sayıyı da -1 olarak gösteriyor.
 

Başlıkta C++ demişsiniz ancak örnek kodunuz C olarak yazılmış.
 
C++:
if(sayi==-1)
        break;
Bu kodu en başa yazmayı deneyin bide yani girilen değerleri "küçüksayı" içerisine atmadan direk çıksın.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…