Números pedriscos, Algoritmo de números naturales
#include <stdio .h>
#include<math .h>
//Prototipado
void ingresar(unsigned int *);
void operar(char *respuesta);
void divisor(unsigned int * numero, int *pasos,int *par,int*impar);
int main(){
unsigned int numero;
int pasos=0,par=0, impar=0;
char respuesta;
operar(&respuesta);
while((respuesta=='s')||(respuesta=='S')){
ingresar(&numero);
while(numero!=1){
divisor(&numero,&pasos,&par,&impar);
}
operar(&respuesta);
pasos=0; par=0; impar=0;
}
}
void ingresar(unsigned int *numero){ //Ingreso del numero
printf("Ingrese numero natura: ");
scanf("%u",numero);
}
void operar(char*respuesta){
printf("Para ingresar un numero ingrese |s|: ");
scanf("%c",respuesta);
fflush(stdin);
}
void divisor(unsigned int *numero,int *pasos,int *par,int *impar){
unsigned int auxiliar= *numero;
int resto= *numero%2;
if(resto==0){
*par = *par+1;
fflush(stdin);
*pasos = *pasos+1;
fflush(stdin);
*numero = *numero/2;
fflush(stdin);
printf("Paso numero: %d, NUMERO PAR(%d), [ %u / 2 ]= %u\n",*pasos,*par,auxiliar,*numero);
}else{
*impar=*impar+1;
fflush(stdin);
*pasos=*pasos+1;
*numero= ((*numero)*3)+1;
printf("Paso numero: %d, NUMERO IMPAR(%d), [ (%u*3)+1]= %u\n",*pasos,*impar,auxiliar,*numero);
}
}
}
#include<math .h>
//Prototipado
void ingresar(unsigned int *);
void operar(char *respuesta);
void divisor(unsigned int * numero, int *pasos,int *par,int*impar);
int main(){
unsigned int numero;
int pasos=0,par=0, impar=0;
char respuesta;
operar(&respuesta);
while((respuesta=='s')||(respuesta=='S')){
ingresar(&numero);
while(numero!=1){
divisor(&numero,&pasos,&par,&impar);
}
operar(&respuesta);
pasos=0; par=0; impar=0;
}
}
void ingresar(unsigned int *numero){ //Ingreso del numero
printf("Ingrese numero natura: ");
scanf("%u",numero);
}
void operar(char*respuesta){
printf("Para ingresar un numero ingrese |s|: ");
scanf("%c",respuesta);
fflush(stdin);
}
void divisor(unsigned int *numero,int *pasos,int *par,int *impar){
unsigned int auxiliar= *numero;
int resto= *numero%2;
if(resto==0){
*par = *par+1;
fflush(stdin);
*pasos = *pasos+1;
fflush(stdin);
*numero = *numero/2;
fflush(stdin);
printf("Paso numero: %d, NUMERO PAR(%d), [ %u / 2 ]= %u\n",*pasos,*par,auxiliar,*numero);
}else{
*impar=*impar+1;
fflush(stdin);
*pasos=*pasos+1;
*numero= ((*numero)*3)+1;
printf("Paso numero: %d, NUMERO IMPAR(%d), [ (%u*3)+1]= %u\n",*pasos,*impar,auxiliar,*numero);
}
}
}
Comentarios
Publicar un comentario