Monday, September 23, 2013

#include <cstdlib>    //atoi(),atof()
#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;
}