30/09/2018, 16:15
Poll: Kiểm tra kiến thức C - 3.07
Các bạn thảo luận đáp án nhé, bài test lấy từ http://www.indiabix.com/online-test/c-programming-test/13
7. Point out the error in the program?
#include<stdio.h>
int main()
{
struct emp
{
char name[20];
float sal;
};
struct emp e[10];
int i;
for(i=0; i<=9; i++)
scanf("%s %f", e[i].name, &e[i].sal);
return 0;
}
- A. Error: invalid structure member
- B. Error: Floating point formats not linked
- C. No error
- D. None of above
Bài liên quan
đọc xong ko hiểu cái đoạn
có nghĩa là tạo mảng 10 phần tử với struct emp phải ko @Is2IT
còn nữa tại sao lại tham chiều đến &e[i].sal trong khi đó là giá trị rác
Bài này không có lỗi, nhưng nếu dùng scanf để nhập chuỗi thì quá sai.
Nên dùng fgets thì hay hơn. Ví dụ trong bài này chuỗi có 20 ký tự thì ta nhập vào:
Đúng rồi @Honey_moon
Cái này là lấy địa chỉa của sal, mục đích là ghi giá trị vào sal. Cũng giống như khi ta ghi giá trị vào một biến int bất kỳ.
Nhưng ở đây có dính struct vào nên nhìn hơi lạ.
Mảng thực chất cũng là 1 con trỏ mà giá trị đầu tiên nó trỏ tới là vị trí e[0]. => e có thể coi là 1 con trỏ
e[i] là giá trị tại vị trí i trong mảng, e và &e[i] là lấy địa chỉ chứ k phải giá trị rác