01/10/2018, 16:13

Lỗi nhập tham số trên dòng lệnh ngôn ngữ C

Chào các bạn

mình code thế này để làm chương trình tính toán nhỏ bằng C
Nhưng khi dùng tính năng nhân 2 số thì lại trả về là bạn đã nhập sai toán tử
Đây là code của mình:
#include < stdio.h>
# include < stdlib.h>

int arithmetic(int num1, int num2, char op)
{
	switch(op){
		case '+':
			return(num1+num2);
			break;
		case '-':
			return(num1-num2);
			break;
		case '*':
			return(num1*num2);
			break;
		case '/':
			if(num2==0){
				printf("loi chia cho so 0");
				exit(1);
			}
			else 
				return(num1/num2);
			break;
		case '%':
			if(num2==0){
				printf("loi chia cho so 0");
				exit(1);
			}
			else
				return(num1%num2);
			break;
		default:
			printf("Ban da nhap sai toan tu");
			exit(1);
	}
}

int main(int argc, char* argv[])
{
	int num1, num2;
	char op;

	num1= atoi(argv[1]);
	op = argv[2][0];
	num2= atoi(argv[3]);
	
	printf("%d", arithmetic(num1, num2, op));
	return 0;
}
Pham Van Hai viết 18:19 ngày 01/10/2018

Chương trình chạy được, trừ phép nhân (chắc do * là ký tự đặc biệt), bạn có thể thay bằng x cho chắc ăn.
cú pháp: <program name> 1 + 2

Đặng Trung viết 18:20 ngày 01/10/2018

Cảm ơn bạn, vậy bạn có thể cho mình biết các ký tự nào là đặc biệt trong C không ?

Trần Hoàn viết 18:15 ngày 01/10/2018

* không phải là ký tự đặc biệt của C mà là ký tự đặc biệt của shell, không dùng để làm arguments của chương trình.

Bài liên quan
0