İçeriğe geç
ShiftDelete.Net
Haber ara/ SDN'ye SorGiriş
Haber Akışı SDNTV İnceleme Forum Yapay Zeka Akıllı Telefon Elektrikli Otomobil Oyun ShiftDelete.Net Global Teknoloji Haberleri Mobil Otomobil Donanım Savunma Bilim Sosyal Medya İnternet Giyilebilir Teknoloji Rehber Ürünler Son dakika Yazarlar
  1. Ana sayfa
  2. Topluluk
  3. Programlama
  4. SDN Programlama Kafe
SDN Programlama Kafe

[ÇÖZÜLDÜ]C++'da fonksiyonların kullanımını öğrenmeye çalışıyorum aldığım hatayı anlamadım.

ByMoToRisT13.01.20220 cevap1.964 görüntüleme Kilitli
2017'den beri324 mesaj
#1
Arkadaşlar bu kodlardaki sorun ne? fonksiyonları double int ve void olarak denedim her seferinde farklı hatalar veriyor. Doğrusu ne?
#include <iostream>
#include <stdlib.h>

using namespace std;

double ikili(double s1, double s2)
{
    int sec;
    cout << "İşlem seçin: ";
    cin >> sec;
    
    switch (sec)
    {
        case 1:
        {
            return s1 + s2;
        }
        case 2:
        {
            return s1 - s2;
        }
        case 3:
        {
            return s1 * s2;
        }
        case 4:
        {
            return s1 / s2;
        }
        default:
        {
            break;
        }
    }
}

double uclu(double s1, double s2, double s3)
{
    int sec;
    cout << "İşlem seçin: ";
    cin >> sec;
    
    switch (sec)
    {
        case 1:
        {
            return s1 + s2 + s3;
        }
        case 2:
        {
            return s1 - s2 - s3;
        }
        case 3:
        {
            return s1 * s2 * s3;
        }
        default:
        {
            break;
        }
    }
}

double dortlu(double s1, double s2, double s3, double s4)
{
    int sec;
    cout << "İşlem seçin: ";
    cin >> sec;
    
    switch (sec)
    {
        case 1:
        {
            return s1 + s2 + s3 + s4;
        }
        case 2:
        {
            return s1 - s2 - s3 - s4;
        }
        case 3:
        {
            return s1 * s2 * s3 * s4;
        }
        default:
        {
            break;
        }
    }
}

int main()
{
    double sayi1, sayi2, sayi3, sayi4;
    int girdi;
    
    cout << "İşlemler:" << endl << "1: Toplama \n2: Çıkarma \n3: Çarpma \n4: Bölme(sadece ikili işlemler)" << endl;
    
    cout << "\n\n\t\t\tKaç adet sayı ile işlem yapmak istiyorsunuz? (max 4)  ";
    cin >> girdi;
    
    if (girdi == 2)
    {
        cout << "Birinci sayı: ";
        cin >> sayi1;
        cout << "İkinci sayı: ";
        cin >> sayi2;
        
        cout << ikili(sayi1, sayi2);
    }
    else if (girdi == 3)
    {
        cout << "Birinci sayı: ";
        cin >> sayi1;
        cout << "İkinci sayı: ";
        cin >> sayi2;
        cout << "Üçüncü sayı: ";
        cin >> sayi3;
        
        cout << uclu(sayi1, sayi2, sayi3);
    }
    else if (girdi == 4)
    {
        cout << "Birinci sayı: ";
        cin >> sayi1;
        
        cout << "İkinci sayı: ";
        cin >> sayi2;
        
        cout << "Üçüncü sayı: ";
        cin >> sayi3;
        
        cout << "Dördüncü sayı: ";
        cin >> sayi4;
        
        cout << dortlu(sayi1, sayi2, sayi3, sayi4);
    }
    
    return main();
}

Problemi çözdüm. Veri döndürmeyi case dışında yaptım. Doğrusunu bırakıyorum belki başkalarının işine yarar.

#include <iostream>
#include <stdlib.h>

using namespace std;

double ikili(double s1, double s2)
{
    int sec;
    double sonuc;
    cout << "İşlem seçin: ";
    cin >> sec;
    
    switch (sec)
    {
        case 1:
        {
            sonuc = s1 + s2;
            break;
        }
        case 2:
        {
            sonuc = s1 - s2;
            break;
        }
        case 3:
        {
            sonuc = s1 * s2;
            break;
        }
        case 4:
        {
            sonuc = s1 / s2;
            break;
        }
        default:
        {
            break;
        }
    }
    return sonuc;
}

double uclu(double s1, double s2, double s3)
{
    int sec;
    double sonuc;
    cout << "İşlem seçin: ";
    cin >> sec;
    
    switch (sec)
    {
        case 1:
        {
            sonuc = s1 + s2 + s3;
            break;
        }
        case 2:
        {
            sonuc = s1 - s2 - s3;
            break;
        }
        case 3:
        {
            sonuc = s1 * s2 * s3;
            break;
        }
        default:
        {
            break;
        }
    }
    return sonuc;
}

double dortlu(double s1, double s2, double s3, double s4)
{
    int sec;
    double sonuc;
    cout << "İşlem seçin: ";
    cin >> sec;
    
    switch (sec)
    {
        case 1:
        {
            sonuc = s1 + s2 + s3 + s4;
            break;
        }
        case 2:
        {
            sonuc = s1 - s2 - s3 - s4;
            break;
        }
        case 3:
        {
            sonuc = s1 * s2 * s3 * s4;
            break;
        }
        default:
        {
            break;
        }
    }
    return sonuc;
}

int main()
{
    double sayi1, sayi2, sayi3, sayi4;
    int girdi;
    
    cout << "\n\nİşlemler:" << endl << "1: Toplama \n2: Çıkarma \n3: Çarpma \n4: Bölme(sadece ikili işlemler)" << endl;
    
    cout << "\n\n\t\t\tKaç adet sayı ile işlem yapmak istiyorsunuz? (max 4):  ";
    cin >> girdi;
    
    if (girdi == 2)
    {
        cout << "Birinci sayı: ";
        cin >> sayi1;
        cout << "İkinci sayı: ";
        cin >> sayi2;
        
        cout << "\t\t\t" << ikili(sayi1, sayi2);
    }
    else if (girdi == 3)
    {
        cout << "Birinci sayı: ";
        cin >> sayi1;
        cout << "İkinci sayı: ";
        cin >> sayi2;
        cout << "Üçüncü sayı: ";
        cin >> sayi3;
        
        cout << "\t\t\t" << uclu(sayi1, sayi2, sayi3);
    }
    else if (girdi == 4)
    {
        cout << "Birinci sayı: ";
        cin >> sayi1;
        
        cout << "İkinci sayı: ";
        cin >> sayi2;
        
        cout << "Üçüncü sayı: ";
        cin >> sayi3;
        
        cout << "Dördüncü sayı: ";
        cin >> sayi4;
        
        cout << "\t\t\t" << dortlu(sayi1, sayi2, sayi3, sayi4);
    }
    
    return main();
}
düzenlendi

Bu konu kilitli

Kilitli konulara yeni cevap yazılamaz.