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:
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ı.

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

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.
 
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?

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.
 
Uyarı! Bu konu 6 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ı