30/09/2018, 18:37

nhập môn c. bài tập c

đề: viết chương trình nhập tên sản phẩm,đơn giá,số lượng và thành tiền của 1 cửa hàng.
tính: thành tiền của sản phẩm = số lượng * đơn giá
thuế = 10%tiền

Nhưng sau khi e chạy thì chỉ nhập đc tên mặt hàng.ko biết sai chỗ nào

Bá Cường viết 20:47 ngày 30/09/2018

trong cái prinf bỏ hết cái ,a ,b ,c gì đấy đi. Cái đấy chỉ nhập khi gán xong giá trị mà thôi

Nguyễn Thành Luân viết 20:44 ngày 30/09/2018

Có đc đâu ạ. E bỏ rồi mà vẫn ko được

Bá Cường viết 20:39 ngày 30/09/2018

À bạn khai báo a là kiểu kí tự chỉ nhập được 1 kí tự thôi. Nếu bạn muốn nhâp một xâu thì ghi là char a[10] 10 là độ dài xâu. Sửa ở dưới scanf("%c",&a) thành gets(a) nha

Trần Tuấn An viết 20:40 ngày 30/09/2018

bạn sửa lại chỗ khai báo tên mặt hàng từ 1 ký tự thành 1 xâu nhé!
char a[50];
printf(“nhap ten mat hang :”);
gets(a);
mình tiện nên gõ sourde code luôn bạn thông cảm

Nguyễn Văn Dũng viết 20:50 ngày 30/09/2018

Code của bạn sai khá nhiều. Bạn có thể xem đoạn mình code sau đây và đối chiếu lại:

#include <stdio.h>
int main(){
char a[68];
long b,c;
printf("Nhap ten mat hang: ");
gets(a);
printf("Nhap so luong mat hang: ");
scanf("%ld", &b);
printf("Nhap gia mat hang: ");
scanf("%ld", &c);
}
Nguyễn Thành Luân viết 20:43 ngày 30/09/2018

dạ ddc rồi. cơ mà sao phải là gets mà ko phải là scanf ạ?

Nguyễn Thành Luân viết 20:44 ngày 30/09/2018

sao lại phải là gets ? mà ko phải là scanf? e ko hiểu lắm

Nguyễn Thành Luân viết 20:40 ngày 30/09/2018

10% mà nhân cho 1 số thì phải viết làm sao ạ?

lahata viết 20:52 ngày 30/09/2018

gets để giúp bạn nhận một chỗi được nhập từ terminal hay console,
char chr[100]; // khởi tạo một mảng char, bạn nhập vào hello thì hello sẽ được lưu vào trong này.
// tối đa biến chr lưu được là 99 ký tự (1 ký tự dùng để báo hết chuỗi)

gets(chr) sẽ giúp bạn nhận chuỗi vừa nhập.

Hoặc bạn có thể dùng scanf("%s",chr); để nhận chuỗi, %s chỉ ra rằng dữ liệu cần nhập là chuỗi.

Vậy. scanf hay gets cũng chỉ là các hàm để nhập dữ liệu được người nào đó viết sẵng mà thôi…

lahata viết 20:39 ngày 30/09/2018

float fData = 0.0;
fData = fData * 10 / 100; // một số nhân cho 10%

Nguyễn Văn Dũng viết 20:49 ngày 30/09/2018

Mình không đồng ý với bạn về điều này.
Scanf khi sẽ thoát ra khi gặp khoảng trắng còn gets thì không.
Bạn có thể tham khảo thêm ở đây:

stackoverflow.com
Shihe Zhang

What's the difference between gets and scanf?

c, scanf, gets
asked by Shihe Zhang on 07:07AM - 28 Oct 14

Bài liên quan
0