Program çalıştığında klavyeden girilen b tamsayısına göre a3 - a2 = b şartını sağlayan 0 – 100 aralığındaki (0 < a < 100) a tamsayılarını bulup ekran

Katılım
24 May 2020
Mesajlar
9
Puanları
1
Yaş
23
merhaba ben bu sayfadan bır kullanıcının kodunda bır değişiklik yaptım ama else kısmında bir türlü ekrana yazı alamadım nasıl yapmam gerekiyor
Kod:
#include<iostream>

#include<math.h>

#include<locale.h>

using namespace std ;

int main(){

setlocale(LC_ALL, "Turkish");

int aCube, aSquare, b, iResult;

cout<<"Lütfen b tamsayısını giriniz:";

cin >> b;

for(int i=0; i<100; i++)

{

aCube= (i*i)*i;

aSquare= i*i;

iResult= aCube-aSquare;

if(iResult==b)

{

cout << i <<" tamsayısı a^3-a^2=b denklemini karşılıyor." << endl;



}

  else if(iResult<b && iResult>b){

       cout<<"istediğiniz parametre bulunmamaktadır";

           while(1);

   }



}



return 0;

system("pause");

}
 
Moderatör tarafında düzenlendi:
C++:
#include<iostream>
#include<math.h>
#include<locale.h>

using namespace std ;

int main(){
    setlocale(LC_ALL, "Turkish");
    int aCube, aSquare, b, iResult;
    
    cout<<"Lütfen b tamsayısını giriniz: ";
    cin >> b;
    
    for(int i=0; i<100; i++)
    {
        aCube= (i*i)*i;
        aSquare= i*i;
        iResult= aCube-aSquare;
        if(iResult==b)
        {
            cout << i <<" tamsayısı a^3-a^2=b denklemini karşılıyor." << endl;
        }
        else /*if(iResult<b && iResult>b)*/{
            cout<<"istediğiniz parametre bulunmamaktadır."<<endl;
            //while(1);
            break;
        }
    }
    return 0;
    //system("pause");
}
 
jasdü.png

normalde 4 olarak giriş yaptığımızda matematiksel olarak 2 değerini almamız gerekiyor size demiştim bu durumda hep aynı şeyi döndürüyor diye
C++:
#include<iostream>
#include<math.h>
#include<locale.h>

using namespace std ;

int main(){
    setlocale(LC_ALL, "Turkish");
    int aCube, aSquare, b, iResult;
    
    cout<<"Lütfen b tamsayısını giriniz: ";
    cin >> b;
   while("true"){
  
    for(int i=0; i<100; i++)
    {
        aCube= (i*i)*i;
        aSquare= i*i;
        iResult= aCube-aSquare;
        if(iResult==b)
        {
            cout << i <<" tamsayısı a^3-a^2=b denklemini karşılıyor." << endl;
           while(1);
        }
        else if(iResult>b){
            cout<<"istediğiniz parametre bulunmamaktadır."<<endl;
            while(1);
            break;
        }
    }
}
    system("pause");
    return 0;
    
}







kodun çözümü bu şekildeymiş az önce yazdım teşekkür ederim yardımlar için
 
Son düzenleme:
Birden fazla sonucun çıkma ihtimali olan
çözümlemelerde;
"Eratosten Kalburu" (Sieve of Eratosthenes)
kullanmak daha makul olacaktır.
 
merhaba ben bu sayfadan bır kullanıcının kodunda bır değişiklik yaptım ama else kısmında bir türlü ekrana yazı alamadım nasıl yapmam gerekiyor
#include<iostream>
#include<math.h>
#include<locale.h>
using namespace std ;
int main(){
setlocale(LC_ALL, "Turkish");
int aCube, aSquare, b, iResult;
cout<<"Lütfen b tamsayısını giriniz:";
cin >> b;
for(int i=0; i<100; i++)
{
aCube= (i*i)*i;
aSquare= i*i;
iResult= aCube-aSquare;
if(iResult==b)
{
cout << i <<" tamsayısı a^3-a^2=b denklemini karşılıyor." << endl;

}
else if(iResult<b && iResult>b){
cout<<"istediğiniz parametre bulunmamaktadır";
while(1);
}

}

return 0;
system("pause");
}
Merhabalar, bu kodu ben yazmıştım. Ödev kısmında başka bir arkadaş sormuştu. Siz zaten "iResult < b OR iResult > b" demişsiniz. Bu zaten üstte ki if şartı sadece "iResult == b" kontrol ettiği için siz "ELSE" demiş oluyorsunuz. Mehmet hocam da zaten uygun bir dille konuyu size aktarmış.

While(1) kullanmanızın sebebini de anlayamadım?
 
sürekli tekrar ettiğinden dolayı döngüyü while 1 ile kitlemiş oldum
 

Forum istatistikleri

Konular
127,950
Mesajlar
913,850
Kullanıcılar
449,597
Son üye
CTure

Yeni konular

Geri
Üst