#include<stdio.h>
int main()
{
int i,max,min;
int sira1;
int sira2;
int a[5]={2,4,6,7,8};
for(i=0;i<5;i++)
{
max=a[0];
if(a>max)
{
max=a;
sira1=i;
}
}
for(i=0;i<5;i++)
{
min=a[0];
if(a<min)
{
min=a;
sira2=i;
}
}
printf("The maximum element is %d sira1 %d\n",max,sira1);
printf("The minimum element is %d sira2 %d\n",min,sira2);
return 0;
}
Arkadaşlar bu kodu yazıp derlediğimde sorunsuz çalışıyor fakat minimum elemanın sırasını 8 olarak yazdırıyor.Yardımcı olursanız sevinirim.
Hata Nerde
Yukarıdaki koda gore sira1 ve sira2 degiskenlerine(variables) ilk deger atamalari yapmalisiniz.Cunku min degiskenine ilk deger olarak dizinin ilk elemanı atanmıştır.
min=a[0]; -> dolayısıyla a dizisinin en kucuk elemanı olan 2 degerini -> if(a < min) kosul icerisinde hicbir zaman işlemeyecektir.Cunku tesadufi olarak en kucuk eleman dizinin ilk elemanıdır ve if() kosuluna girmeksizin sira1 degiskeni deger alamayacaktır.Dolayısıyla sira1 degiskenine 0 degerini atayınız.Ayrıca max ve min degiskenlerine ilk deger atamalarını dongu icerisinde degil,işletim donguye girmeden yapmalısınız.
Nihayi Kod Asagıdaki gibi olabilir.
#include<stdio.h>
int main() {
int i,sira1=0,sira2=0;
int a[5]={2,4,6,7,8};
int max=a[0];
for(i=0;i<5;i++) {
if(a>max) {
max=a;
sira1=i;
}
}
int min=a[0];
for(i=0;i<5;i++) {
if(a<min) {
min=a;
sira2=i;
}
}
printf("The maximum element is %d sira1 %d\n",max,sira1);
printf("The minimum element is %d sira2 %d\n",min,sira2);
getchar();
return 0;
}
Başarılar
Yukarıdaki koda gore sira1 ve sira2 degiskenlerine(variables) ilk deger atamalari yapmalisiniz.Cunku min degiskenine ilk deger olarak dizinin ilk elemanı atanmıştır.
min=a[0]; -> dolayısıyla a dizisinin en kucuk elemanı olan 2 degerini -> if(a < min) kosul icerisinde hicbir zaman işlemeyecektir.Cunku tesadufi olarak en kucuk eleman dizinin ilk elemanıdır ve if() kosuluna girmeksizin sira1 degiskeni deger alamayacaktır.Dolayısıyla sira1 degiskenine 0 degerini atayınız.Ayrıca max ve min degiskenlerine ilk deger atamalarını dongu icerisinde degil,işletim donguye girmeden yapmalısınız.Nihayi Kod Asagıdaki gibi olabilir.
#include
int main() {
int i,sira1=0,sira2=0;
int a[5]={2,4,6,7,8};
int max=a[0];
for(i=0;i<5;i++) {
if(a>max) {
max=a;
sira1=i;
}
}
int min=a[0];
for(i=0;i<5;i++) {
if(a min=a;
sira2=i;
}
}
printf("The maximum element is %d sira1 %d\n",max,sira1);
printf("The minimum element is %d sira2 %d\n",min,sira2);
getchar();
return 0;
}
Başarı
Teşekkürler açıklama için kod şimdi sorunsuz çalışıyor.Size de başarılar.