Lỗi has stopped working trong bài tập struct phân số

#include <stdio.h>

typedef struct
{
    float tuso;
    float mauso;
}PHANSO;

void Nhap(PHANSO ps[], int &i)
{
    char choice;
    do
    {
        printf("Nhap tu so: ");
        scanf("%f", &ps[i].tuso);
        printf("Nhap mau so: ");
        scanf("%f", &ps[i].mauso);
        i++;
        printf("Ban co muon tiep tuc nhap thi an 'c':");
        scanf("%c", choice);
    }while(choice == 'c' || choice == 'C');
}

void Xuat(PHANSO ps[], int n)
{
    for(int i=0; i<n; i++)
    printf("Phan so ban vua nhap la: %.2f/%.2f\n", ps[i].tuso, ps[i].mauso);
}

int main()
{
    PHANSO ps[50];
    int i = 0;
    Nhap(ps, i);
    Xuat(ps, i);
    return 0;
}

mọi người xem hàm nhập của e lỗi gì mà nó hiện has stopped working

Dòng scanf("%c", choice); thiếu toán tử & nhé…

định dạng kiểu ký tự không dùng toán tử & cũng được nhé bạn

dong %c ban thay bang %s nhe

Bạn thử lại đi, chỉ có kiểu chuỗi mới làm được như bạn nói… :expressionless:

  • Thứ nhất bạn phải thêm toán tử & trong câu lệnh scanf("%c", choice);
  • Thứ 2 bạn phải loại bỏ ký tự thừa ở câu lệnh scanf trước đó:
    ví dụ:
scanf("%c", &choice);```
1 Like

ok được rồi cảm ơn m.n

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