Cần giúp đỡ bài lấy dữ liệu sinh viên

Phải dùng cấu trúc ntn để in ra (So sv phai hoc lai: 2) ạ ? em cảm ơn
Đoạn code ở dưới in đúng nhưng bài nó vẫn incorrect

#include <stdio.h>
#define MAX_SIZE 100

typedef struct{
	char ten[50];
	int masv;
	float diemToan, diemTriet, diemltC, diemTB;
}sinhvien;
void nhap( sinhvien arr[], int size );
void in( sinhvien arr[], int size);
int main (){
	sinhvien a[MAX_SIZE]; int n;
	scanf("%d", &n);
	nhap( a, n );
	in( a, n );
	return 0;
}
void nhap( sinhvien arr[], int size ){
	for (int i=0; i<size; i++){
		scanf("%s", arr[i].ten);
		scanf("%d", &arr[i].masv);
		scanf("%f", &arr[i].diemToan);
		scanf("%f", &arr[i].diemTriet);
		scanf("%f", &arr[i].diemltC);
	}
}
void in( sinhvien arr[], int size){
	printf("Danh sach sinh vien hoc lai\n");
	int dem=0;
	for (int i=0; i<size; i++){
		arr[i].diemTB = (arr[i].diemToan + arr[i].diemTriet + arr[i].diemltC)/3;
		if(arr[i].diemToan<4.0 && arr[i].diemTriet<4.0 || arr[i].diemToan<4.0 && arr[i].diemltC<4.0 || arr[i].diemTriet<4.0 && arr[i].diemltC<4.0){
			printf("%s %d %.2f %.2f %.2f %.2f\n", arr[i].ten, arr[i].masv, arr[i].diemToan, arr[i].diemTriet, arr[i].diemltC, arr[i].diemTB);
			dem ++ ;
		}
	}
	printf("So sv phai hoc lai: %d", dem);
}

diemTB thì nên tính luôn trong hàm nhập

void nhap( sinhvien arr[], int size ){
	for (int i=0; i<size; i++){
		scanf("%s", arr[i].ten);
		scanf("%d", &arr[i].masv);
		scanf("%f", &arr[i].diemToan);
		scanf("%f", &arr[i].diemTriet);
		scanf("%f", &arr[i].diemltC);
        arr[i].diemTB = (arr[i].diemToan + arr[i].diemTriet + arr[i].diemltC)/3;
	}
}

if((arr[i].diemToan<4.0 && arr[i].diemTriet<4.0) || (arr[i].diemToan<4.0 && arr[i].diemltC<4.0) || (arr[i].diemTriet<4.0 && arr[i].diemltC<4.0))
thêm ngoặc cho đủ, bạn thử lại nhé

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?