A number is said to be capicua when read from left to right is the same as when read from right to left. For example: the number 320023 is capicua , while the number 1872681 is not. Then construct a function in C to see if a read integer is capicua. The function should return 1 if the number is capicua and 0 otherwise. Also write an algorithm that reads "n" numbers and writes next to each of them the message "YES" if the number is "capicua" and "NO" otherwise. Do not use the "if" or "case" commands.
In my algorithm the error mentioned in the title occurs.
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#define color "color 1F"
int capicua(int n);
int propriedade(int n);
void ler_capicua();
int main(int agrc, char *argv[]){
int n;
system(color);
setlocale(LC_ALL,"");
printf("Digite um número: ");
scanf("%d",&n);
capicua(n);
ler_capicua();
propriedade(n);
}
int capicua(int n){
int x=n, r=0;
while(x!=0){
r=r*10;
r=r+x%10;
x=x/10;
}
if(n==r){
printf("%d é um número \"capicua\"",n);
}
else{
printf("%d não é um número \"capicua\"",n);
}
sleep(3);
system("cls");
}
int propriedade(int n){
int contrario=0, aux=n, x, i;
printf("Digite um número para saber se possui essa propriedade: ");
scanf("%d",&n);
printf("Quantos algarismos esse número possui? ");
scanf("%d",&x);
for(i=0;i<n;i++){
contrario=contrario*10;
contrario=contrario+aux%10;
aux=aux/10;
if(aux==0) break;
}
if(n==contrario) return 1;
else return 0;
sleep(3);
system("cls");
}
void ler_capicua(){
int n, i;
printf("\nInsira quantidade de números que queria calcular: ");
scanf("%d",&i);
while(i>0){
printf("\nInsira o número: ");
scanf("%d",&n);
if(capicua(n) == 1) printf("SIM");
else print("NÃO");
i--;
}
}