Çözüldü Hesap makinesi kodu hata veriyor

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

mehmet_emin_dgn

Hectopat
Katılım
17 Temmuz 2021
Mesajlar
54
Daha fazla  
Cinsiyet
Erkek
Hesap makinesi yapmaya çalışıyordum ama nedense kod hata veriyor hatayı da anlamadım, nasıl düzelteceğimi yardım eder misiniz? Kodu ve hatayı aşağıya yazıyorum.

C:
#include <stdio.h>

int main(void) {
 int say1;
 int islem;
 int say2;
 int sonuc;

 printf("islemi giriniz. Toplama için 1'e, çıkarma için 2'ye, çarpma için 3'e, bölme için 4'e basınız.\n");
 scanf("%d", &islem);

 if(islem==1)
 {
 printf("ilk sayıyı giriniz.\n(ÖRN:16)\n");
 scanf("%d", &say1);
 printf("ikinci sayıyı giriniz.\n(ÖRN:93)\n");
 scanf("%d", &say2);

 printf("%d",say1 + say2);
 }

 else if(islem==2);
 {
 printf("ilk sayıyı giriniz.\n(ÖRN:16)\n");
 scanf("%d", &say1);
 printf("ikinci sayıyı giriniz.\n(ÖRN:93)\n");
 scanf("%d", &say2);

 printf("%d",say1 - say2);
 }

 else(islem==3)
 {
 printf("ilk sayıyı giriniz.\n(ÖRN:16)\n");
 scanf("%d", &say1);
 printf("ikinci sayıyı giriniz.\n(ÖRN:93)\n");
 scanf("%d", &say2);

 printf("%d",say1 * say2);
 }

else(islem==4)
 {
 printf("ilk sayıyı giriniz.\n(ÖRN:16)\n");
 scanf("%d", &say1);
 printf("ikinci sayıyı giriniz.\n(ÖRN:93)\n");
 scanf("%d", &say2);

 printf("%d",say1 / say2);

 }

 return 0;
}

Hata:

/Main. C:32:4: Error: Expected expression.
Else(işlem==3)
^
1 error generated.
Make: *** [Makefile:10: Main] error 1
Exit status.
 
Çözüm
C:
#include <stdio.h>

int main() {

  int sayi1;
  int sayi2;
  int islem;
  int sonuc;

  printf("islemi giriniz. Toplama için 1'e, çıkarma için 2'ye, çarpma için "
         "3'e, bölme için 4'e basınız.\n");
  scanf("%d", &islem);

  if (islem == 1) {
    printf("ilk sayıyı giriniz.\n(ÖRN:16)\n");
    scanf("%d", &sayi1);
    printf("ikinci sayıyı giriniz.\n(ÖRN:93)\n");
    scanf("%d", &sayi2);

    printf("%d", sayi1 + sayi2);
  }

  else if (islem == 2) {
    printf("ilk sayıyı giriniz.\n(ÖRN:16)\n");
    scanf("%d", &sayi1);
    printf("ikinci sayıyı giriniz.\n(ÖRN:93)\n");
    scanf("%d", &sayi2);

    printf("%d", sayi1 - sayi2);
  }

  else if (islem == 3) {
    printf("ilk sayıyı giriniz.\n(ÖRN:16)\n");
    scanf("%d", &sayi1);
    printf("ikinci sayıyı giriniz.\n(ÖRN:93)\n");
    scanf("%d", &sayi2);

    printf("%d", sayi1 * sayi2);
  }

  else {
      printf("ilk sayıyı giriniz.\n(ÖRN:16)\n");
      scanf("%d", &sayi1);
      printf("ikinci sayıyı giriniz.\n(ÖRN:93)\n");
      scanf("%d", &sayi2);

      printf("%d", sayi1 / sayi2);
    }

  return 0;
}

Program fonksiyonlarını yerine getiriyor mu test etmedim, yazım hatalarını düzelttim ve biraz oynadım. Test etmek sende. Sorunun çözülürse çözüm olarak işaretlersen sevinirim.

@mehmet_emin_dgn
Noktalı virgülü kaldır.
Hata maalesef hala var ve koda istersen burdan da bakabilirsin


2 tane else mi var?

2 tane else koymuşsun ayrıca noktalı virgülü de kaldırman lazım, düzenlenmiş kodu biraz sonra atacağım. Ders çıkarırsın.
Evet

Hesap makinesi yapmaya çalışıyordum ama nedense kod hata veriyor hatayı da anlamadım, nasıl düzelteceğimi yardım eder misiniz? Kodu ve hatayı aşağıya yazıyorum.

C:
#include <stdio.h>

int main(void) {
 int say1;
 int islem;
 int say2;
 int sonuc;

 printf("islemi giriniz. Toplama için 1'e, çıkarma için 2'ye, çarpma için 3'e, bölme için 4'e basınız.\n");
 scanf("%d", &islem);

 if(islem==1)
 {
 printf("ilk sayıyı giriniz.\n(ÖRN:16)\n");
 scanf("%d", &say1);
 printf("ikinci sayıyı giriniz.\n(ÖRN:93)\n");
 scanf("%d", &say2);

 printf("%d",say1 + say2);
 }

 else if(islem==2);
 {
 printf("ilk sayıyı giriniz.\n(ÖRN:16)\n");
 scanf("%d", &say1);
 printf("ikinci sayıyı giriniz.\n(ÖRN:93)\n");
 scanf("%d", &say2);

 printf("%d",say1 - say2);
 }

 else(islem==3)
 {
 printf("ilk sayıyı giriniz.\n(ÖRN:16)\n");
 scanf("%d", &say1);
 printf("ikinci sayıyı giriniz.\n(ÖRN:93)\n");
 scanf("%d", &say2);

 printf("%d",say1 * say2);
 }

else(islem==4)
 {
 printf("ilk sayıyı giriniz.\n(ÖRN:16)\n");
 scanf("%d", &say1);
 printf("ikinci sayıyı giriniz.\n(ÖRN:93)\n");
 scanf("%d", &say2);

 printf("%d",say1 / say2);

 }

 return 0;
}

Hata:

/Main. C:32:4: Error: Expected expression.
Else(işlem==3)
^
1 error generated.
Make: *** [Makefile:10: Main] error 1
Exit status.
 
C:
#include <stdio.h>

int main() {

  int sayi1;
  int sayi2;
  int islem;
  int sonuc;

  printf("islemi giriniz. Toplama için 1'e, çıkarma için 2'ye, çarpma için "
         "3'e, bölme için 4'e basınız.\n");
  scanf("%d", &islem);

  if (islem == 1) {
    printf("ilk sayıyı giriniz.\n(ÖRN:16)\n");
    scanf("%d", &sayi1);
    printf("ikinci sayıyı giriniz.\n(ÖRN:93)\n");
    scanf("%d", &sayi2);

    printf("%d", sayi1 + sayi2);
  }

  else if (islem == 2) {
    printf("ilk sayıyı giriniz.\n(ÖRN:16)\n");
    scanf("%d", &sayi1);
    printf("ikinci sayıyı giriniz.\n(ÖRN:93)\n");
    scanf("%d", &sayi2);

    printf("%d", sayi1 - sayi2);
  }

  else if (islem == 3) {
    printf("ilk sayıyı giriniz.\n(ÖRN:16)\n");
    scanf("%d", &sayi1);
    printf("ikinci sayıyı giriniz.\n(ÖRN:93)\n");
    scanf("%d", &sayi2);

    printf("%d", sayi1 * sayi2);
  }

  else {
      printf("ilk sayıyı giriniz.\n(ÖRN:16)\n");
      scanf("%d", &sayi1);
      printf("ikinci sayıyı giriniz.\n(ÖRN:93)\n");
      scanf("%d", &sayi2);

      printf("%d", sayi1 / sayi2);
    }

  return 0;
}

Program fonksiyonlarını yerine getiriyor mu test etmedim, yazım hatalarını düzelttim ve biraz oynadım. Test etmek sende. Sorunun çözülürse çözüm olarak işaretlersen sevinirim.

@mehmet_emin_dgn
 
Çözüm
C:
#include <stdio.h>

int main() {

  int sayi1;
  int sayi2;
  int islem;
  int sonuc;

  printf("islemi giriniz. Toplama için 1'e, çıkarma için 2'ye, çarpma için "
         "3'e, bölme için 4'e basınız.\n");
  scanf("%d", &islem);

  if (islem == 1) {
    printf("ilk sayıyı giriniz.\n(ÖRN:16)\n");
    scanf("%d", &sayi1);
    printf("ikinci sayıyı giriniz.\n(ÖRN:93)\n");
    scanf("%d", &sayi2);

    printf("%d", sayi1 + sayi2);
  }

  else if (islem == 2) {
    printf("ilk sayıyı giriniz.\n(ÖRN:16)\n");
    scanf("%d", &sayi1);
    printf("ikinci sayıyı giriniz.\n(ÖRN:93)\n");
    scanf("%d", &sayi2);

    printf("%d", sayi1 - sayi2);
  }

  else if (islem == 3) {
    printf("ilk sayıyı giriniz.\n(ÖRN:16)\n");
    scanf("%d", &sayi1);
    printf("ikinci sayıyı giriniz.\n(ÖRN:93)\n");
    scanf("%d", &sayi2);

    printf("%d", sayi1 * sayi2);
  }

  else {
      printf("ilk sayıyı giriniz.\n(ÖRN:16)\n");
      scanf("%d", &sayi1);
      printf("ikinci sayıyı giriniz.\n(ÖRN:93)\n");
      scanf("%d", &sayi2);

      printf("%d", sayi1 / sayi2);
    }

  return 0;
}

Program fonksiyonlarını yerine getiriyor mu test etmedim, yazım hatalarını düzelttim ve biraz oynadım. Test etmek sende. Sorunun çözülürse çözüm olarak işaretlersen sevinirim.

@mehmet_emin_dgn
ChatGPT kullanmasak mı?

Hata maalesef hala var ve koda istersen burdan da bakabilirsin



Evet



else if(islem==2);
Sondaki virgülü sil. ; ile değil { ile başlanır if bloğuna.
else if olmalı çünkü içinde bir expression var.
else if olmalı çünkü içinde bir expression var.
 
Ama ne kast ettiğini anlamadım.
Bunu dedim.

else if (islem == 2) {
Cidden üşenmeden { satırlarını değiştirmişseniz o sizin bileğinizin kuvveti. 🙏

Test etmek sende.
Ayrıca sorgusuz sualsiz ChatGPT kullanmakla suçlamanız hoşuma gitmedi, haberiniz olsun.
Kuşku bırakıyorsunuz.
 

Technopat Haberler

Geri
Yukarı