Ví dụ về Toán tử 3 ngôi, e thử code: printf(“%s”, (n >= 0) ? “Positive number” : “Negative number”); thì chương trình báo lỗi nhỉ. E có khai báo biến n
Ok, e chạy được rồi. Vì e ko gán giá trị cụ thể cho biến n từ đầu mà muốn nhập sau
#include
int main() {
int n;
puts(“Hay Nhap so nguyen”);
scanf_s(“%d”, &n);
printf(“%s”, ( n >= 0 ) ? “Positive number” : “Nagative number”);
Anh ơi câu 4 em code như này nhưng không lặp được như ý em muốn ạ, nó cứ bị bỏ qua lệnh scanf xong tự cho giá trị rác vào biến sau mỗi vòng lặp ạ. Anh có thể xem giúp em không ạ em cám ơn anh
#include
int main() {
char c;
while(1){
puts(“Nhap diem cua ban.\nHoac bam ‘x’ de thoat.”);
scanf(“%c”, &c);
switch (c)
{
case ‘x’:
break;
case ‘F’:
case ‘f’:
puts(“Liet (Truot mon)”);
break;
case ‘D’:
case ‘d’:
puts(“Yeu”);
break;
case ‘C’:
case ‘c’:
puts(“Trung binh”);
break;
case ‘B’:
case ‘b’:
puts(“Kha”);
break;
case ‘A’:
case ‘a’:
puts(“Gioi”);
break;
default: {
puts(“Tuy chon sai vui long chon lai”);
break; }
}
if (c == ‘x’) {
puts(“Cam on ban da su dung truong trinh cua toi/n”);
break;
}
}
}
a ơi bài 5 e làm theo switch với esle if e coppy nguyên đoạn bài giải vào nó vẫn báo lỗi dòng dưới chỗ
else if (day <= 31) { // 20 – 31/1
else if (0 < day && day <= 31) { // 20 – 31/1
e dùng dev C++ e lưu chương trình dạng C rồi mà k được a xem lại giúp e với
A ơi bài 5 em có viết đoạn code như sau:
case 1:
if (1 <= day <= 19) {
puts("Ban thuoc cung Ma Ket");
}
else if (20 <= day <= 31) {
puts("Ban thuoc cung Bao binh");
}
else {
puts("Ngay khong hop le");
}
break;
Khi em điền 31 1 thì kết quả đưa ra "Ban thuoc cung Bao Binh" là đúng, nhưng khi em điền các số lớn hơn 31 thì kết quả vẫn như vậy thay vì phải báo "Ngay khong hop le". Anh giải đáp giúp em với ạ.
21 Comments
anh ơi anh cho em hỏi puts với scanf khác nhau ở điểm gì và khi nào nên dùng puts khi nào nên dùng scanf ạ?
puts chỉ dùng để hiển thị dữ liệu kiểu mảng char
Ví dụ về Toán tử 3 ngôi, e thử code: printf(“%s”, (n >= 0) ? “Positive number” : “Negative number”); thì chương trình báo lỗi nhỉ. E có khai báo biến n
Dị nhỉ. A test thấy chạy ngon lành mà:
int n = 100;
printf(“%s”, (n >= 0) ? “So duong” : “So am”);
Ok, e chạy được rồi. Vì e ko gán giá trị cụ thể cho biến n từ đầu mà muốn nhập sau
#include
int main() {
int n;
puts(“Hay Nhap so nguyen”);
scanf_s(“%d”, &n);
printf(“%s”, ( n >= 0 ) ? “Positive number” : “Nagative number”);
}
Oke nhá
Cho em hỏi puts khác printf chỗ nào ạ … Em cảm ơn
Puts chỉ dùng để hiển thị chuỗi kí tự
Anh ơi em xem phần giải của câu 5 thì khi nhập ngày âm code vẫn chạy ra cung hoàng đạo bình thường
xong em chèn thêm đoạn code này được k ạ:
#include
int main() {
int day, month;
puts(“Nhap ngay sinh: “);
scanf(“%d”, &day);
puts(“Nhap thang sinh: “);
scanf(“%d”, &month);
while (day <= 0 || month 0 && month > 0)
break;
else {
puts(“Nhap lai ngay thang nam sinh”);
puts(“Nhap ngay sinh: “);
scanf(“%d”, &day);
puts(“Nhap thang sinh: “);
scanf(“%d”, &month);
}
}
mặc định nhập ngày dương nhé e. e có thể thêm đoạn code kiểm tra ngày tháng âm nếu muốn
Anh ơi câu 4 em code như này nhưng không lặp được như ý em muốn ạ, nó cứ bị bỏ qua lệnh scanf xong tự cho giá trị rác vào biến sau mỗi vòng lặp ạ. Anh có thể xem giúp em không ạ em cám ơn anh
#include
int main() {
char c;
while(1){
puts(“Nhap diem cua ban.\nHoac bam ‘x’ de thoat.”);
scanf(“%c”, &c);
switch (c)
{
case ‘x’:
break;
case ‘F’:
case ‘f’:
puts(“Liet (Truot mon)”);
break;
case ‘D’:
case ‘d’:
puts(“Yeu”);
break;
case ‘C’:
case ‘c’:
puts(“Trung binh”);
break;
case ‘B’:
case ‘b’:
puts(“Kha”);
break;
case ‘A’:
case ‘a’:
puts(“Gioi”);
break;
default: {
puts(“Tuy chon sai vui long chon lai”);
break; }
}
if (c == ‘x’) {
puts(“Cam on ban da su dung truong trinh cua toi/n”);
break;
}
}
}
E thay scanf(“%c”, &c); bởi scanf(“%c%*c”, &c);
Xem chương 7 để biết thêm chi tiết về %*c
Em fix được rồi, em cám ơn anh ạ 😋
@Hieufckk Bạn có thể thay đổi như sau: scanf_s(“%c”, &c, 1);
a ơi bài 5 e làm theo switch với esle if e coppy nguyên đoạn bài giải vào nó vẫn báo lỗi dòng dưới chỗ
else if (day <= 31) { // 20 – 31/1
else if (0 < day && day <= 31) { // 20 – 31/1
e dùng dev C++ e lưu chương trình dạng C rồi mà k được a xem lại giúp e với
e chụp mành hình hoặc gửi code vào trang facebook support: https://www.facebook.com/braniumacademy/
để được hỗ trợ nhanh chóng nhé
e ib r đó ạ
A ơi bài 5 em có viết đoạn code như sau:
case 1:
if (1 <= day <= 19) {
puts("Ban thuoc cung Ma Ket");
}
else if (20 <= day <= 31) {
puts("Ban thuoc cung Bao binh");
}
else {
puts("Ngay khong hop le");
}
break;
Khi em điền 31 1 thì kết quả đưa ra "Ban thuoc cung Bao Binh" là đúng, nhưng khi em điền các số lớn hơn 31 thì kết quả vẫn như vậy thay vì phải báo "Ngay khong hop le". Anh giải đáp giúp em với ạ.
e có thể inbox trực tiếp đoạn code trên vào messenger ở góc phải dưới của màn hình không?
sao lại gán result =0 ạ
Đó là giá trị khởi tạo