Cita de: boctulus en 19 Abril 2016, 01:16 AM
Las definiciones de las funciones (que son opcionales en ciertos casos) se pueden colocar en un archivo aparte de "headers" (de extension .h y con el mismo nombre que tu .c)Código [Seleccionar]
// palindromos.c
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
using namespace std;
/*
Capicupa (palindromo) ?
*/
// todo esto podria estar en palindromos.h
const char* r_bool(bool b);
bool es_capicua(int x);
void print_capicua_rango(int a, int b);
int main(void)
{
cout << r_bool(es_capicua(10000)) << endl; // false
cout << r_bool(es_capicua(10001)) << endl; // true
cout << r_bool(es_capicua(10501)) << endl; // true
cout << r_bool(es_capicua(807)) << endl; // false
cout << r_bool(es_capicua(808)) << endl; // true
print_capicua_rango(19,100);
getchar();
}
void print_capicua_rango(int a, int b){
int i,count=0;
for (i=a; i<b; i++){
if (es_capicua(i)){
cout << i << endl;
count++;
}
}
cout << "El numero de terminos capicua es " << count;
}
bool es_capicua(int x){
char buffer [10];
int i;
bool exito = true;
itoa(x,buffer,10);
int len = strlen(buffer);
for (i = 0; i<(int)len/2 && exito; i++)
exito = buffer[i]==buffer[len-1-i];
return exito;
}
const char* r_bool(bool b){
return (b ? "true" : "false");
}
Se convierte en......Código [Seleccionar]
// palindromos.h
const char* r_bool(bool b);
bool es_capicua(int x);
void print_capicua_rango(int a, int b);Código [Seleccionar]
// palindromos.c
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "palindromos.h"
using namespace std;
/*
Capicupas (palindromos)
*/
int main(void)
{
cout << r_bool(es_capicua(10000)) << endl; // false
cout << r_bool(es_capicua(10001)) << endl; // true
cout << r_bool(es_capicua(10501)) << endl; // true
cout << r_bool(es_capicua(807)) << endl; // false
cout << r_bool(es_capicua(808)) << endl; // true
print_capicua_rango(19,100);
getchar();
}
void print_capicua_rango(int a, int b){
int i,count=0;
for (i=a; i<b; i++){
if (es_capicua(i)){
cout << i << endl;
count++;
}
}
cout << "El numero de terminos capicua es " << count;
}
bool es_capicua(int x){
char buffer [10];
int i;
bool exito = true;
itoa(x,buffer,10);
int len = strlen(buffer);
for (i = 0; i<(int)len/2 && exito; i++)
exito = buffer[i]==buffer[len-1-i];
return exito;
}
const char* r_bool(bool b){
return (b ? "true" : "false");
}
Muchas gracias, muy claro todo.
Si es que sabes algo del test.c te lo agradeceria mucho!