Öncelikle merhaba soru şu: 10 elemanlık dizinin elemanları klavyeden girilecek ve girilen elemanlardan en büyük ve en küçük değerler bulunacak. Aşağıdaki kodda büyük sayıyı buluyor fakat nedense küçük sayı hep sıfır neden olabilir?
#include<iostream>
using namespace std;
int main(){
int i;
int sayilar[10];
int buyuk=sayilar[0]; int kucuk=sayilar[0];
int n = sizeof(sayilar) / sizeof(sayilar[0]);
cout<<"Diziye eleman ekleyiniz"<<endl;
for(i=0 ; i<10 ; i++){
cin>>sayilar; }
for(i=0 ; i<10 ; i++){
cout<<"["<<i<<"]="<<sayilar<<endl; }
for(i=0 ; i<n ; i++){
if(sayilar>buyuk){
buyuk=sayilar; }
else if(sayilar<kucuk){
kucuk=sayilar; } }
cout<<"En Büyük Sayı: "<<buyuk<<endl; cout<<"En Küçük Sayı: "<<kucuk;
en üstte buyuk ve kucuk degiskenlerini direkt 0'a eşitleyin cunku sayilar[0] 'a nasıl olsa deger atanacak. ayrıca alttaki sayilar bir işaretçi/pointer deger olarak algılanır, onları sayilar gibi int deger yapmalısınız.
kucuk için INT_MAX ı , büyük için INT_MIN ı kullanmanı öneririm. örneğin küçüğe sıfır yazarsan ve array pozitif tam sayılardan oluşursa , küçük sıfır kalacak. Aynısı büyük için de geçerli
#include<iostream>
using namespace std;
int main(){
int i;
int sayilar[10];
int buyuk=sayilar[0];
int kucuk=sayilar[0];
int n = sizeof(sayilar) / sizeof(sayilar[0]);
cout<<"Diziye eleman ekleyiniz"<<endl;
for(i=0 ; i<10 ; i++){
cin>>sayilar;
}
for(i=0 ; i<10 ; i++){
cout<<"["<<i<<"]="<<sayilar<<endl;
}
for(i=0 ; i<n ; i++){
if(sayilar>buyuk){
buyuk=sayilar;
}
else if(sayilar<kucuk){
kucuk=sayilar;
}
}
cout<<"En Büyük Sayı: "<<buyuk<<endl;
cout<<"En Küçük Sayı: "<<kucuk;
}
< Bu ileti mobil sürüm kullanılarak atıldı >