Chương trình in ra câu đầu rồi kết thúc mà chưa kịp làm gì

Mn xem giúp em ạ. Em tìm lỗi những vẫn không hiểu tại sao nó không thực hiện chtr mặc dù vẫn chạy. Nó chỉ in ra câu đầu rồi kết thúc chtr luôn. Em mới bắt đầu học lập trình mong giúp đỡ ạ

#include <stdio.h>
#include <conio.h>
void main ()
{
  char hinh;
  float a,b,S,CV;
  printf("Nhap hinh can tinh: ");
  scanf("%c",&hinh);
  switch(hinh)
  {
    case 'hcn':        
      printf("Nhap chieu dai: ");
      scanf("%f",&a);
      printf("Nhap chieu rong: ");
      scanf("%f",&b);
      S = a*b;
      CV = (a+b)*2;
      pritnf("S: %.2f\n",S);
      pritnf("CV: %.2f",CV);
      break;
    defaul:
      printf("Hinh khong hop le");
      break;
  }
  getch();
}

Sai cú pháp tè le thế mà vẫn biên dịch và chạy?

  1. switch - case với chuỗi?
  2. Chuỗi mà không phải chuỗi. Dùng ' thì không phải là chuỗi.
  3. Từ khóa default.
  4. Nhập kí tự sẽ có nhiều vấn đề “không nhìn thấy” xảy ra.

Dự doán: biên dịch không thành công, chạy tập tin đã biên dịch trước đó khi chỉ có vài dòng.

5 Likes

Dường như người hỏi không có khiếu về lập trình, ngoài những cái sai bạn SITUVN.gcd chỉ, còn có: pritnf.

Biên dịch nó báo lỗi tùm lum lại không thèm đọc để sửa.

5 Likes

Em đã fix lỗi đc rồi. Xin lỗi mn vì sự ngáo ngơ vào đêm khuya :slight_smile:

#include <stdio.h>
#include <conio.h>
void main()
{
  int hinh;
  float a,b,S,CV,r;
  printf("Hinh 1:hcn\nHinh 2:hv\nHinh 3:htron\n");
  printf("Nhap hinh can tinh: ");
  scanf("%d", &hinh);
  const float pi = 3.14;
  switch(hinh)
  {
    case 1:        
      printf("Nhap chieu dai: ");
      scanf("%f",&a);
      printf("Nhap chieu rong: ");
      scanf("%f",&b);
      S = a*b;
      CV = (a+b)*2;
      printf("S: %.2f\n",S);
      printf("CV: %.2f",CV);
      break;
    case 2:
      printf("Nhap canh hv: ");
      scanf("%f",&a);
      S = pow(a,2);
      CV = a*4;
      printf("S: %.2f\n",S);
      printf("CV: %.2f",CV);
      break;
    case 3:
      printf("Nhap ban kinh r: ");
      scanf("%f",&r);
      S = pi*pow(r,2);
      CV = 2*pi*r;
      printf("S: %.2f\n",S);
      printf("CV: %.2f",CV);
      break;
    default:
      printf("Hinh khong hop le");
      break;
  }
  getch();
  return 0;
}
1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?