error: no match for
operator<<
instd::operator<< <std::char_traits<char> >(*&std::cout),((const char*)
#include <iostream>
using namespace std;
int ContarDig (int num){
int contar=1;
while (num>9){
num=num/10;
contar=contar+1;
}
return contar;
}
void arreglo(int a[], int t){
for(int i=(ContarDig(t)-1); i>=0; i--){
a[i]=t%10;
t=t/10;
cout <<"valor posicion[" << i << "]= "<<a[i]<<endl;
}
}
void invertir(int A[],int x){
int l=(ContarDig(x)/2);
int i=0;
int f=ContarDig(x);
for(l;l>=0;l--){
int b=A[i];
A[i]=A[f];
A[f]=b;
i++;
f--;
}
for (i;i<=ContarDig(x);i++){
cout <<"valor posicion[" << i << "]= "<<A[i]<<endl;
}
}
int main(int argc, char *argv[]) {
int x;
cout<<"Digite un numero para invertir"<<endl;
cin>>x;
int A[ContarDig(x)];
arreglo (A,x);
cout<<"========================================================================"<<endl;
cout<< "El arreglo invertido es:" << invertir(A,x) << endl;
return 0;
}
So, I would like to know how to solve my problem, its objective is to have an array and invert it.
#include <iostream>
using namespace std;
int ContarDig (int num){
int contar=1;
while (num>9){
num=num/10;
contar=contar+1;
}
return contar;
}
void arreglo(int a[], int t){
for(int i=(ContarDig(t)-1); i>=0; i--){
a[i]=t%10;
t=t/10;
cout <<"valor posicion[" << i << "]= "<<a[i]<<endl;
}
}
void invertir(int A[],int x){
int l=(ContarDig(x)/2);
int i=0;
int f=ContarDig(x)-1;
for(l;l>=0;l--){
int b=A[i];
A[i]=A[f];
A[f]=b;
if (ContarDig(x)==2)
break;
i++;
f--;
}
}
int main(int argc, char *argv[]) {
int x;
cout<<"Digite un numero para invertir"<<endl;
cin>>x;
int A[ContarDig(x)];
arreglo (A,x);
cout<<"========================================================================"<<endl;
cout<< "El arreglo invertido es:" <<endl;
invertir(A,x);
for (int i=(ContarDig(x)-1);i>=0;i--){
cout <<"valor posicion[" << i << "]= "<<A[i]<<endl;
}
return 0;
}
This is the new version of my program and now it runs perfectly.