Gönderen Konu: C çözemediğim bir problem  (Okunma sayısı 2089 defa)

Çevrimdışı colifact

  • Üye
  • İleti: 2
    • Profili Görüntüle
C çözemediğim bir problem
« : 23 Ara 2014, 15:06:36 Sal »
6.21 (Airline Reservations System) A small airline has just purchased a computer for its new automated
reservations system. The president has asked you to program the new system. You’ll write
a program to assign seats on each flight of the airline’s only plane (capacity: 10 seats).
Your program should display the following menu of alternatives:
Please type 1 for "first class"
Please type 2 for "economy"
If the person types 1, then your program should assign a seat in the first class section (seats 1–
5). If the person types 2, then your program should assign a seat in the economy section (seats 6–
10). Your program should then print a boarding pass indicating the person's seat number and
whether it’s in the first class or economy section of the plane.
Use a single-subscripted array to represent the seating chart of the plane. Initialize all the elements
of the array to 0 to indicate that all seats are empty. As each seat is assigned, set the corresponding
element of the array to 1 to indicate that the seat is no longer available.
Your program should, of course, never assign a seat that has already been assigned. When the
first class section is full, your program should ask the person if it’s acceptable to be placed in the
economy section (and vice versa). If yes, then make the appropriate seat assignment. If no, then
print the message "Next flight leaves in 3 hours."


Şimdi böyle bi soru var kolay göründü ama bir türlü beceremedim diyeyim baya da uzun bir kod yazdım ancak yeni bir değer girdiğimde sürekli aynı koltuğu atıyor hatayı da bir türlü bulamadım. Sizin çözüm önerilerinizi bekliyorum gerekirse ben de kendi kodumu burda paylaşırım.

Çevrimdışı nfy

  • Üye
  • İleti: 5
    • Profili Görüntüle
Ynt: C çözemediğim bir problem
« Yanıtla #1 : 23 Ara 2014, 21:29:57 Sal »
Yazdıklarınızı da ekleyebilir misiniz hocam? Hatanızı da düzeltmiş olursunuz, daha faydalı olur.

Çevrimdışı colifact

  • Üye
  • İleti: 2
    • Profili Görüntüle
Ynt: C çözemediğim bir problem
« Yanıtla #2 : 23 Ara 2014, 23:30:00 Sal »
Kod: [Seç]
#include<stdio.h>
#include<conio.h>

int main (void)

{
int A[10]={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, c, i, j, z, k=0, p=0;
printf("Please type 1 for \"First Class\"\nPlease type 2 for \"Economy Class\"\n");
while(1){
scanf("%d", &c);
if(c==1){
//koltuk kontrolleri
for(i=0;i<=4;i++)
{ if(A[i]==1)
   continue;
  else
 {A[i]==1;
  printf("yo seat number is %d", i+1);
  k=1;
  break;}} /*koltuk kontrolleri sonu*/
/*yer yoksa*/  if(k==0){
   printf("There are no seats available in Business Class!\nDo you want a seat from Econ?\nIf yes type 1, if no type 2");
  scanf("%d", &z);
 
//diğer classın koltuk kontrolleri 
if(z==1) 
  {for(i=5;i<=9;i++)
{ if(A[i]==1)
   continue;
  else
 {A[i]==1;
  printf("yo seat number is %d", i+1);
  p=1;
  break;}} /*diğer classın koltuk kontrolleri sonu*/
  if(p==0){printf("Next flight is on 3 o'clock");}
  p=0;
  k=0;
   
}

if(z==2){printf("Next flight is on 3 o'clock");}
  }/*yer yoksa kısmı bitiyor*/
 
  }

if(c==2){
//koltuk kontrolleri
for(i=5;i<=9;i++)
{ if(A[i]==1)
   continue;
  else
 {A[i]==1;
  printf("yo seat number is %d", i+1);
  k=1;
  break;}} /*koltuk kontrolleri sonu*/
/*yer yoksa*/  if(k==0){
   printf("There are no seats available in Business Class!\nDo you want a seat from Econ?\nIf yes type 1, if no type 2");
  scanf("%d", &z);
 
//diğer classın koltuk kontrolleri 
if(z==1) 
  {for(i=0;i<=4;i++)
{ if(A[i]==1)
   continue;
  else
 {A[i]==1;
  printf("yo seat number is %d", i+1);
  p=1;
  break;}} /*diğer classın koltuk kontrolleri sonu*/
  if(p==0){printf("Next flight is on 3 o'clock");}
  p=0;
  k=0;
   
}/*yer yoksa kısmı bitiyor*/

if(z==2){printf("Next flight is on 3 o'clock");}
  }
 
  }}
getch();
return 0;
}

Bu arada biraz karmaşık yazmışım kusuruma bakmayın kodlamada yeniyim arkadaşlar.

Çevrimdışı undefeated006

  • Üye
  • İleti: 4
    • Profili Görüntüle
Ynt: C çözemediğim bir problem
« Yanıtla #3 : 24 Ara 2014, 04:02:40 Çrş »
#include<stdio.h>       
int main ()               /*南部征服者(fg)*/
{
   int A[11]={0,0,0,0,0,0,0,0,0,0,0},c,i=0,j=0,a;
   
   while(i+j<=9)
   {
      printf("Please type 1 for \"First Class\"\nPlease type 2 for \"Economy Class\"\n");
      scanf("%d", &c);
      if(c==1)
      {
         if (i<5)
         {
            printf("your seat number is %d in first class\n", i+1);
            A=1;
            i++;
         }
         else
         {
            printf("There is no avalaible seat for first class\n");
            if (j<5)
            {
            printf("Do you want economy seat for your trip\n yes for enter 0 no for 1\n");
            scanf("%d",&a);
               if (a==0)
               {
                  printf("your seat number is %d in economy class\n", j+6);
                     A[j+6]=1;
                   j++;
               }
               else
                  printf("Next flight leaves in 3 hours.\n");
            }
            else
               printf("Next flight leaves in 3 hours.\n");
            
         }
      }
      else if (c==2)
      {
         if (j<5)
         {
            printf("your seat number is %d in economy class\n", j+6);
            A[j+6]=1;
            j++;
         }
         else
         {
            printf("There is no avalaible seat for economy class\n");
            if (i<5)
            {
            printf("Do you want first class seat for your trip\n yes for enter 0 no for 1\n");
            scanf("%d",&a);
               if (a==0)
               {
                  printf("your seat number is %d in first class\n", i+1);
                     A=1;
                   i++;
               }
               else
                  printf("Next flight leaves in 3 hours.\n");
            }
            else
               printf("Next flight leaves in 3 hours.");

         }
      }


   }
   printf("There is no seat neither economy nor first class\nNext flight leaves in 3 hours.\n");
}
« Son Düzenleme: 24 Ara 2014, 04:08:32 Çrş Gönderen: undefeated006 »

Çevrimdışı nfy

  • Üye
  • İleti: 5
    • Profili Görüntüle
Ynt: C çözemediğim bir problem
« Yanıtla #4 : 24 Ara 2014, 11:53:42 Çrş »
Kod: [Seç]
#include<stdio.h>
#include<conio.h>

int main (void)

{
int A[10]={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, c, i, j, z, k=0, p=0;
printf("Please type 1 for \"First Class\"\nPlease type 2 for \"Economy Class\"\n");
while(1){
scanf("%d", &c);
if(c==1){
//koltuk kontrolleri
for(i=0;i<=4;i++)
{ if(A[i]==1)
   continue;
  else
 {A[i]==1;
  printf("yo seat number is %d", i+1);
  k=1;
  break;}} /*koltuk kontrolleri sonu*/
/*yer yoksa*/  if(k==0){
   printf("There are no seats available in Business Class!\nDo you want a seat from Econ?\nIf yes type 1, if no type 2");
  scanf("%d", &z);
 
//diğer classın koltuk kontrolleri 
if(z==1) 
  {for(i=5;i<=9;i++)
{ if(A[i]==1)
   continue;
  else
 {A[i]==1;
  printf("yo seat number is %d", i+1);
  p=1;
  break;}} /*diğer classın koltuk kontrolleri sonu*/
  if(p==0){printf("Next flight is on 3 o'clock");}
  p=0;
  k=0;
   
}

if(z==2){printf("Next flight is on 3 o'clock");}
  }/*yer yoksa kısmı bitiyor*/
 
  }

if(c==2){
//koltuk kontrolleri
for(i=5;i<=9;i++)
{ if(A[i]==1)
   continue;
  else
 {A[i]==1;
  printf("yo seat number is %d", i+1);
  k=1;
  break;}} /*koltuk kontrolleri sonu*/
/*yer yoksa*/  if(k==0){
   printf("There are no seats available in Business Class!\nDo you want a seat from Econ?\nIf yes type 1, if no type 2");
  scanf("%d", &z);
 
//diğer classın koltuk kontrolleri 
if(z==1) 
  {for(i=0;i<=4;i++)
{ if(A[i]==1)
   continue;
  else
 {A[i]==1;
  printf("yo seat number is %d", i+1);
  p=1;
  break;}} /*diğer classın koltuk kontrolleri sonu*/
  if(p==0){printf("Next flight is on 3 o'clock");}
  p=0;
  k=0;
   
}/*yer yoksa kısmı bitiyor*/

if(z==2){printf("Next flight is on 3 o'clock");}
  }
 
  }}
getch();
return 0;
}

Bu arada biraz karmaşık yazmışım kusuruma bakmayın kodlamada yeniyim arkadaşlar.

Assigment(değer atama)'ta hatanız var. Mesela bir koltuğun dolu olduğunu göstermek için A array'in de o koltuğun değerine 1 atamak için aşağıdaki kodu yazmışsınız:
A==1;
Assigment yapmanız için 1 tane eşittir kullanmanız gerekir, iki tane eşittir condition (koşul) belirtmek için kullanırsınız (A==1: A 1'e eşit mi? Eşitse 1, değilse 0 döndürür).

Sonuç olarak kodun içeriğinde assigment yapmak isterken kullandığınız A==1'leri A=1'e dönüştürerek sorunu çözmüş olduk. Aşağıda vereceğim kodlarda da düzeltme yapılan satır olarak belirttim. Umarım anlatabilmişimdir.

Yeni hali:
Kod: [Seç]
#include<stdio.h>
#include<conio.h>

int main (void)

{
int A[10]={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, c, i, j, z, k=0, p=0;
printf("Please type 1 for \"First Class\"\nPlease type 2 for \"Economy Class\"\n");
while(1){
scanf("%d", &c);
if(c==1){
//koltuk kontrolleri
for(i=0;i<=4;i++)
{ if(A[i]==1)
   continue;
  else
 {A[i]=1; /*düzeltme yapılan satır1*/
  printf("yo seat number is %d", i+1);
  k=1;
  break;}} /*koltuk kontrolleri sonu*/
/*yer yoksa*/  if(k==0){
   printf("There are no seats available in Business Class!\nDo you want a seat from Econ?\nIf yes type 1, if no type 2");
  scanf("%d", &z);
 
//diğer classın koltuk kontrolleri 
if(z==1) 
  {for(i=5;i<=9;i++)
{ if(A[i]==1)
   continue;
  else
 {A[i]=1; /*düzeltme yapılan satır2*/
  printf("yo seat number is %d", i+1);
  p=1;
  break;}} /*diğer classın koltuk kontrolleri sonu*/
  if(p==0){printf("Next flight is on 3 o'clock");}
  p=0;
  k=0;
   
}

if(z==2){printf("Next flight is on 3 o'clock");}
  }/*yer yoksa kısmı bitiyor*/
 
  }

if(c==2){
//koltuk kontrolleri
for(i=5;i<=9;i++)
{ if(A[i]==1)
   continue;
  else
 {A[i]=1; /*düzeltme yapılan satır3*/
  printf("yo seat number is %d", i+1);
  k=1;
  break;}} /*koltuk kontrolleri sonu*/
/*yer yoksa*/  if(k==0){
   printf("There are no seats available in Business Class!\nDo you want a seat from Econ?\nIf yes type 1, if no type 2");
  scanf("%d", &z);
 
//diğer classın koltuk kontrolleri 
if(z==1) 
  {for(i=0;i<=4;i++)
{ if(A[i]==1)
   continue;
  else
 {A[i]=1; /*düzeltme yapılan satır4*/
  printf("yo seat number is %d", i+1);
  p=1;
  break;}} /*diğer classın koltuk kontrolleri sonu*/
  if(p==0){printf("Next flight is on 3 o'clock");}
  p=0;
  k=0;
   
}/*yer yoksa kısmı bitiyor*/

if(z==2){printf("Next flight is on 3 o'clock");}
  }
 
  }}
getch();
return 0;
}

Bi sorun daha var kodlarda, boşta koltuk yoksa yazılmasını istediğiniz şeyleri yazmıyor. Bi inceleyin, çözemezseniz yardımcı olmaya çalışayım.
« Son Düzenleme: 24 Ara 2014, 11:57:41 Çrş Gönderen: nfy »