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;
}
Bài liên quan
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ằngx
cho chắc ăn.cú pháp:
<program name> 1 + 2
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 ?
*
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.