#include <cstring> //strlen()
#include <iostream>
using namespace std;
bool isValid(int argc,char** arg){
int i,j;
int sum=0; //counts all elements from array;
int num=0; //counts only number into the array;
for(int i=1;i<argc;i++){
for(int j=0;j<strlen(arg[i]);j++) {
cout<<arg[i][j];
(arg[i][j]>=48 && arg[i][j]<=57) && (num+=1); //validates as number
(i==2 && (*arg[i]=='+' || '-' || '*' || '/')) && (num+=1); //validates a sign
}
cout<<" ";
sum+=strlen(arg[i]);
}
return (num==sum && argc<5 )?true:false;
//If elements consist of two numbers with a single sign, return true
}
int main(int argc, char** arg) {
int i=1;
int sum;
double sum2;//For division
if(isValid(argc,arg)) {
switch(*arg[2]) {
case '+':
sum=atoi(arg[i])+atoi(arg[i+2]);
break;
case '-':
sum=atoi(arg[i])-atoi(arg[i+2]);
break;
case 'x':
sum=atoi(arg[i])*atoi(arg[i+2]);
break;
case '/':
sum2=atof(arg[i])/atof(arg[i+2]);
break;
}
cout<<"= ";
(*arg[2]=='/')?cout<<sum2<<endl:cout<<sum<<endl;
//If division, print as double, otherwise as int
}
else cout<<endl;
return 0;
}
No comments:
Post a Comment