• Jueves 14 de Noviembre de 2024, 17:07

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - cerberos1990

Páginas: [1]
1
C/C++ / Re: problema programacion en c
« en: Miércoles 18 de Noviembre de 2009, 04:28 »
Me tira un error:

General Protection Exception

En la linea 79 osae en

Código: Text
  1.     if(*A[i] < dato ){^
  2.  


ni idea que sera

2
C/C++ / Re: problema programacion en c
« en: Martes 17 de Noviembre de 2009, 19:52 »
Por casualidad encontras algun error en el codigo del Procedimiento Ranking?

Código: Text
  1.  
  2. #include <stdio.h>
  3. #define MAX 6
  4.  
  5.  
  6.  
  7. void RevisarFinDatos (int* haydatos)
  8. {
  9.     char rta;
  10.     do{
  11.         fflush(stdin);
  12.         printf("Desea ingresar dato? (S/N)");
  13.         scanf("%c", &rta);
  14.     }
  15.     while(rta == 'S' && rta == 'N');
  16.         *haydatos = 1;
  17.     if(rta == 'N') {
  18.         *haydatos = 0;
  19.     }
  20. }
  21.  
  22. void IngresarOrden (char *orden1,char *orden2){
  23.     do
  24.     {
  25.         fflush(stdin);
  26.         printf("Ingrese 'A' si desea que el orden de salida de datos sea ascendente o 'D' si desea que sea descendente");
  27.         scanf("%c", orden1);
  28.     }
  29.     while(*orden1 != 'A' && *orden1 != 'D');
  30.  
  31.  
  32.  
  33.     do{
  34.         fflush(stdin);
  35.         printf("Ingrese 'M' si desea que se muestren los 5 mayores o 'E' si desea que se muestren los 5 menores");
  36.         scanf("%c", orden2);
  37.     }
  38.     while(*orden2 != 'M' && *orden2 != 'E');
  39. }
  40.  
  41.  
  42. void PrimerIngreso (int* continuar,char* orden1,char* orden2)
  43. {
  44.     RevisarFinDatos(continuar);
  45.     if(*continuar == 1){
  46.         IngresarOrden (orden1, orden2);
  47.     }
  48. }
  49.  
  50.  
  51. void MostrarRanking(char orden1,int A[],int CE)
  52. {
  53.     int i;
  54.     if(CE != 0){
  55.         if(orden1 == 'A'){
  56.             for(i = 0; i == CE-1; i++){
  57.                 printf("%d", &A[i]);
  58.             }
  59.         }
  60.         else
  61.         {
  62.             for(i = CE-1; i == 0; i--){
  63.                 printf("%d", &A[i]);
  64.             }
  65.         }
  66.     }
  67.     else
  68.     {
  69.         printf("No se ingresaron numeros");
  70.     }
  71. }
  72.  
  73.  
  74. void Ranking (int dato,char orden2,int A[], int* CE)
  75. {
  76. int i;
  77. if(orden2 == 'M'){
  78.     i = *CE-1;
  79.     while(i >= 0) {
  80.         if(A[i] < dato ){
  81.             A[i+1] = A[i];
  82.             i = i-1;
  83.         }
  84.     }
  85.  
  86.  
  87.     A[i+1] = dato;
  88.     if(*CE < MAX-1){
  89.         *CE++;
  90.     }
  91.     else
  92.     {
  93.         i = *CE-1;
  94.     }
  95.     while(i >= 0) {
  96.         if(A[i] > dato ){
  97.             A[i+1] = A[i];
  98.             i--;
  99.         }
  100.     }
  101.     A[i+1] = dato;
  102.     if(*CE < MAX-1){
  103.         *CE++;
  104.     }
  105. }
  106. }
  107.  
  108.  
  109. void IngresarEnteroPositivo(int* N)
  110. {
  111.     do
  112.     {
  113.         fflush(stdin);
  114.         printf("Ingrese entero positivo");
  115.         scanf("%d", N);
  116.     }
  117.     while(*N <= 0);
  118. }
  119.  
  120.  
  121.  
  122. void Porcentaje (int total, int es)
  123. {
  124.     int h = es*100/total;
  125.     if (total != 0) {
  126.         printf("El porcentaje de numeros perfectos es %d", h);
  127.     }
  128.     else{
  129.         printf("No se procesaron numeros");
  130.     }
  131.  
  132.  
  133. }
  134.  
  135.  
  136. int EsSemiperfecto(int n)
  137. {
  138.     int i;
  139.     int suma = 0;
  140.     int es = 0;
  141.     for(i = n; i >= 1; i--){
  142.         if(n % i == 0)
  143.         {
  144.             suma=suma+n;
  145.             if(suma > n)
  146.             {
  147.             suma=suma-n;
  148.             }
  149.         }
  150.     }
  151.     if(suma == n)
  152.     {
  153.         es = 1;
  154.     }
  155.     return es;
  156. }
  157.  
  158.  
  159. void main()
  160. {
  161.                 int ce = 0;
  162.                 int total = 0;
  163.                 int es = 0;
  164.                 int continuar;
  165.                 int salida[MAX];
  166.                 char orden1;
  167.                 char orden2;
  168.                 int N;
  169.                 int CE;
  170.  
  171.                 PrimerIngreso(&continuar, &orden1, &orden2);
  172.  
  173.  
  174.                 while (continuar != 0)
  175.                 {
  176.  
  177.  
  178.                     IngresarEnteroPositivo(&N);
  179.                     total++;
  180.                     if (EsSemiperfecto(N)){
  181.                         Ranking(N, orden2, salida, &CE);
  182.                         es++;
  183.                     }
  184.                     RevisarFinDatos(&continuar);
  185.                 }
  186.                 MostrarRanking(orden1, salida, CE);
  187.                 Porcentaje(total, es);
  188. }
  189.  
  190.  

3
C/C++ / Re: problema programacion en c
« en: Martes 17 de Noviembre de 2009, 03:41 »
Me re sirvio lo que me dijiste lo que si...

void MostrarRanking(char orden1,int[] A,int CE)

en esta linea me aparece ) expected :| y no encuentro la razon el resto ya lo solucione todo...

4
C/C++ / problema programacion en c
« en: Lunes 16 de Noviembre de 2009, 22:31 »
tengo este codigo es un programa que se ingresan numeros enteros y la salida es un ranking de 5 numeros mayores o menores ascendentes o descendentes segun quiera el usuario de numeros semiperfectos y el porcentaje de numeros semiperfectos. Y hasta ahroa tengo esto pero compilo y tira errores alguien me ayuda?

#include <stdio.h>



void RevisarFinDatos (int* haydatos)
{
char rta;
do{
printf('Desea ingresar dato? (S/N)');
scanf (rta);
}
while(rta != 'S' || rta != 'N')
*haydatos = 1;
if(rta == 'N') {
*haydatos = 0;
}
}

void IngresarOrden (char* orden1,char* orden2){
do
{
printf('Ingrese "A" si desea que el orden de salida de datos sea ascendente o "D" si desea que sea descendente');
scanf(*orden1);
}
while(*orden1 != 'A' || *orden1 != 'D');



do{
printf('Ingrese "M" si desea que se muestren los 5 mayores o "E" si desea que se muestren los 5 menores');
scanf(*orden2);
}
while(*orden2 != 'M' || *orden2 != 'E');
}


void PrimerIngreso (int* continuar,char* orden1,char* orden2)
{
Revisarfindatos(continuar);
if(*continuar == 1){
IngresarOrden (orden1, orden2);
}
}


void MostrarRanking(char orden1,int[] A,int CE)
{
if(CE != 0){
if(orden1 == 'A'){
for(int i = 0; i == ce-1; i++){
prinf(A);
}
}
else
{
for(int i = CE-1; i == 0; i++){
printf(A);
}
}
}
else
{
printf('No se ingresaron numeros');
}
}


void Ranking (int dato,char orden2,int[] A, int* CE)
{
if(orden2 == 'M'){
i = *CE-1;
while(i >= 0) {
if(A < dato ){
A[i+1] = A;
i = i-1;
}
}


A[i+1] = dato;
if(*CE < MAX-1){
ce++;
}
else
{
i = *CE-1;
}
while(i >= 0) {
if(A > dato ){
A[i+1] = A;
i--;
}
}
A[i+1] = dato;
if(*CE < MAX-1){
*CE++;
}
}
}


void IngresarEnteroPositivo (int* N)
{
do
{
printf('Ingrese entero positivo');
scanf(*N);
}
while(*N <= 0)
}



void Porcentaje (int total, int es)
{
if (total <> 0) {
printf('El porcentaje de numeros perfectos es', es*100/total);
}
else{
printf('No se procesaron numeros');
}


}


bool EsSemiperfecto(int n)
{
int suma = 0;
int es = 0;
for(int i = n/2; i= 1; i++){
if(n % i == 0)
{
suma++;
if(suma > n)
{
suma--;
}
}
}
if(suma == n)
{
es = 1;
}
return es;
}


void main()
{
int ce = 0;
int total = 0;
int es = 0;
int continuar;

PrimerIngreso(&continuar, &orden1, &orden2);


while (continuar != 0)
{


IngresarEnteroPositivo(&N);
total++;
if (EsSemiperfecto(N)){
Ranking(N, orden2, &salida, &CE);
es++;
}
RevisarFinDatos(&continuar);
}
MostrarRanking(salida, CE);
Porcentaje(total, es);
}

Páginas: [1]