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.
 

Yeni konular

Geri
Yukarı