[ YARDIM ] program yazıyorum

ermess
27-12-2010, 19:46   |  #1  
OP Üye
Teşekkür Sayısı: 0
57 mesaj
Kayıt Tarihi:Kayıt: Kas 2010

7 cografi bölgenin isimleri yıllık yagış miktarlari ortalma sıcaklıklari okutup ve yagış miktarlarina  göre azalan olarak sıralayıp sırali halini ekrana yazdıran programi yzmaya  calştım ama hata veriyor yardim??
#include
#include
 int main() {
     char bölge[7]=akdeniz,karadeniz,ıcanadolu,ege,doguanodolu,güneydogu,marmara;
     int ortsıcaklık[7]=35,26,34,36,37,38,32;
     int yagış[7]=500,750,320,500,298,234,567;
     int i,j=0;
     int gecici=0;
     printf("7 bölgeyi gir");
     scanf("%c",&bölge);
     scanf("%d",&ortsıcaklık{i]);
      scanf("%d",&yagış);
      for(i=0; i<7; i++) {
               for(j=i+1;  j<7; j++) {
       if(yagış < yagış[j])
     gececi=yagış;
       yagış[j]=yagış[j];
       yagış[j]=gecici;
       }
       }
       }
       for(i=0; i<7; i++)  {
               
                printf("7 bölgenin yagış sıcaklıgı %c%d%d\n\n\n",bölge[7],yagış[7],ortsıcaklık[7]);
                }
                getch();
                return 0;
                }
 

Son Düzenleme: Serkan Karadaş ~ 27 Aralık 2010 23:53
muh34
27-12-2010, 20:04   |  #2  
Yıllanmış Üye
Teşekkür Sayısı: 0
215 mesaj
Kayıt Tarihi:Kayıt: Eki 2010

#include <stdio.h>
#include <conio.h>

int main() {

     char *bolge[8]={"akdeniz","karadeniz","ıcanadolu","ege","doguanodolu","güneydogu","marmara"};
     int ortsicaklik[7]={35,26,34,36,37,38,32};
     int yagis[7]={500,750,320,500,298,234,567};
     int i,j=0;
     int gecici=0;
      for(i=0; i<7; i++) 
      for(j=0; j<6; j++) 
      if(yagis[j] < yagis[j+1]) {
       gecici=yagis[j];
       yagis[j]=yagis[j+1];
       yagis[j+1]=gecici;
       gecici=ortsicaklik[j];
       ortsicaklik[j]=ortsicaklik[j+1];
       ortsicaklik[j+1]=gecici;
       }

       for(i=0; i<7; i++)  
       printf("%s bolgesinin yagis ve sicakligi %d %d\n\n\n",bolge,yagis,ortsicaklik);
       getch();
       return 0;
       }

Dizinin elemanlarini manual olarak girdiginiz icin okutmaniza gerek yoktur.Kodun duzeltimiş halini yayımlıyorum.
Başarılar

ermess
27-12-2010, 20:33   |  #3  
OP Üye
Teşekkür Sayısı: 0
57 mesaj
Kayıt Tarihi:Kayıt: Kas 2010

 teşekkurler hocam da..yalnız başta  char *bolge[8] tanımlamışınız ..7 olmasi gerekmiyor mu .yani orayi tam anlamadim?

Son Düzenleme: ermess ~ 27 Aralık 2010 20:34
muh34
27-12-2010, 20:39   |  #4  
Yıllanmış Üye
Teşekkür Sayısı: 0
215 mesaj
Kayıt Tarihi:Kayıt: Eki 2010

Haklısınız 7 uzunlugu yeterli olacaktır.Hatta bu gibi durumlarda dizinin uzunlugunu vermeyerek,dizi uzunlugu derleyicinin kendisine de bırakılabilir.Ornegin asagıdaki yazım seklide son derece gecerlidir.

char *bolge[]={"akdeniz","karadeniz","ic anadolu","ege","dogu anadolu","guneydogu","marmara"};

Başarılar