-1
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 check if an integer read is Capicua. The function must return 1 if the number is Capicua and 0 otherwise. Escreva também um algoritmo que lê ”n” números e escreve junto a cada um deles a mensagem “SIM” se o número é “capicua” e “NÃO” no caso contrário. Do not use "if" or "case" commands.
In my algorithm occurs the error mentioned in the title.
#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--;
}
}
First, I suggest you use identation.
– eightShirt