Hola!

Registrándote como bakuno podrás publicar, compartir y comunicarte en privado con otros bakuos :D

Regístrame ya!

No compila un programa en C [Ayuda]

JORGE BA-K

Bovino de la familia
Desde
20 Oct 2008
Mensajes
4.072
Hola amigos Fijense que tengo este problema


"Leer n edades imprimir la edad q mas se registro asi como el numero de veces que esto sucedio"..

mi codigo es este, pero no funciona correctamente que estare haciendo mal?

#include <stdio.h>
#include <conio.h>
#include <windows.h>



int edades,edad2,total_de_edades_registradas;
char desicion[2];

main()

{

edades=0;
edad2=0;
total_de_edades_registradas=0;



printf("\n\n desea ingresar una edad");
gets(desicion);

if (strcmp(desicion,"si")==0)
{

while(edades>=0)
{
printf("indique su edad: ");
scanf("%d",&edades);
edades++;

printf("\n\n Terminar el ingreso de edades");
gets(desicion);
printf("Indique si desea terminar el coteo de edad: ");
if (strcmp(desicion,"si")==0 || strcmp(desicion,"no")==0)
{
printf("\n\n total de veces que funciono el programa %d",edades);
}
}
}
getch();
return 0;
}
 
en la parte donde pusiste el main, te falto ponerlo asi,..

void main()

te recomiendo que no uses el gets, puedes usar el scand... al final del main no es necesario poner la sentencia return, ya que no veo que retornes algun dato que te sirva,

checalo y me dices si te funciono.
 
HTML:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void vecez(int,int *, int *, int *);
int main(){
       int edad=0, total=0, aux_edad=0, aux_total=0;
       char opcion[3]="si";
       
       while(strcmp(opcion,"si")==0){
                                     printf("desea ingresar una edad?\n");
                                     scanf("%s",&opcion);
                                     if(strcmp(opcion,"si")==0){
                                     printf("\nIngrese la edad\n");
                                     scanf("%d",&edad);
                                     vecez(edad, &total,&aux_edad,&aux_total);
                                     }
                                     
                                     }
       printf("edad= %d, total= %d", aux_edad, aux_total);
       system("pause");
       return 0;
}

void vecez(int edad, int *total, int *aux_edad, int *aux_total){
    if (edad==*aux_edad || *aux_edad==0){
       if(*total>*aux_total ){
                 *aux_total=*total;
                 *aux_edad=edad;
                 *total+=1;
                 }
                 
    else *total+=1;
    }
    else if(edad!=*aux_edad){
         total=0;
         }
}

este programa lo escribi como entendi el enunciado, y ps como no se mucho, tiene algunos errores y no creo que sea muy bueno
 
Yo solucionaría el problema de la siguiente manera, espero te sirva

#include<stdio.h>
#define TAMANIO 120

void mas(int Aedad[]);

int main(void){

int edad=0, aux=0, i;
int Aedad[TAMANIO]={0};

while(edad!=-1){
printf("Ingresa la Edad(-1 para terminar): ");
scanf("%d",&edad);
++Aedad[edad];
system("cls");
}
mas(Aedad);
system("PAUSE");
return 0;
}

void mas(int Aedad[TAMANIO]){
int aux=Aedad[0], i, edad;

for(i=0; i<TAMANIO-1; i++){
if(Aedad[i+1]>aux){
aux=Aedad[i+1];
edad=i+1;
}
}
printf("Edad mas ocurrida: %d\nNumero de veces que ocurrio: %d\n", edad, aux);
}
 
Facil declara tus variables dentro del main, si estas utilizando el devc usa int main o si usas otro pon void main y como dijo el otro compañero quita el return.
 
como dijo animatrix tu logica esta mal lo unico que hace tu programa es pedir la edad
 
Volver
Arriba