Ana içeriğe git

Haberler

Konu: c++  (35 Kez okunmuş) önceki konu - sonraki konu

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.
  • Şeriban
  • [*]
c++
#include <iostream>
 
using namespace std;

int not_ortalamasi(int *vize =0  , int *final=0)
{   float sonuc=0;
   sonuc = *vize * 0.4+ *final * 0.6;
   cout << "ortalama:" << sonuc<<endl;
   return sonuc;

if (85 <= sonuc <= 100)
      cout << "AA ile basarili...";
else
      cout << "bb ile basarili...";


}

int main()
{
   int vize = 0;
   int final = 0;
   char isim;
   float sonuc = 0;
   
   
   cout << "ogrenciin vize girin:"<<endl;
   cin  >> vize;
   cout << "ogrenciin final girin:"<<endl;
   cin  >> final;
   cout << "ögrencinin adini giriniz:";
   cin >> isim;
    sonuc= not_ortalamasi(&vize, &final);
   cout << sonuc;
   cout << "durum:" << endl;
 if bloğuna girmiyor neden olabilir???

Ynt: c++
Yanıt #1
Öncelikle "not_ortalamasi" fonksiyonunda if şartına gelmeden hemen öncesinde

return sonuc;

 yazmışsın. Bundan dolayı fonksiyon bu satırdan itibaren devam etmeden sonlanıyor ve sonuc değişkenini geri döndürüyor.

Diğer bir sorun

if (85 <= sonuc <= 100) // Böyle bir kullanım yerine

if (85 <= sonuc && sonuc <= 100) // Bu şekilde kullanmanı öneririm

if (85 <= sonuc <= 100) Bu ifadede soldan sağa doğru gidecek olursak. ve sonuc değerimizi 190 kabul edersek.
"85 <= 190" 1 yani true dönecektir.

yeni ifademiz  "1 <= 100" olacaktır ve true sonucu dönecektir. Bu durumda yanlış bir sonuç elde etmiş oluruz.

Ynt: c++
Yanıt #2
Lütfen "Kod Tag" kullanarak kod paylaşımı yapın.