01/10/2018, 17:18

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
");
	scanf("%d", &a);
	printf("Nhap vao so be
");
	scanf("%d", &b);
	printf("Nhap vao phep toan + - * /
");
	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);
		}
	}
}
Trương Tấn Phát viết 19:20 ngày 01/10/2018

scanf("%s", &c);

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

Cuong viết 19:22 ngày 01/10/2018

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ỉ

Trương Tấn Phát viết 19:19 ngày 01/10/2018

Có thể là:

scanf(" %c", &c);

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

stackoverflow.com
Yuval

How to do scanf for single char in C

c, char, scanf
asked by Yuval on 02:16PM - 24 Nov 12

Bài liên quan
0