Run-Time check failure - stack around the viarable 'c' was corrupted

mình mới học lập trình, mong mọi người xem giùm code của mình có lỗi gì mà sau khi chạy thành công trên VS2017 thì báo lỗi debug error như trên tiêu đề ạ. Code của mình:

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

void main()
{
	int a, b;
	char c;
	printf("Nhap vao so lon\n");
	scanf("%d", &a);
	printf("Nhap vao so be\n");
	scanf("%d", &b);
	printf("Nhap vao phep toan + - * /\n");
	scanf("%s", &c);
	if (c == '+')
		printf("%d %c %d =%d", a, c, b, a + b);
	else {
		if (c == '-')
			printf("%d %c %d =%d", a, c, b, a - b);
		else {
			if (c == '*')
				printf("%d %c %d =%d", a, c, b, a * b);
			else
				printf("%d %c %d =%d", a, c, b, a / b);
		}
	}
}

c kiểu char mà dùng %s.
Dùng %c nhé.

1 Like

sao mình dùng %c thì lúc chạy thử chỉ nhập được 2 số đầu xong nó tắt chứ k cho nhập lần thứ 3 nhỉ

Có thể là:

scanf(" %c", &c);

Thêm khoảng trắng phía trước, tham khảo thêm:

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