C/Visual C - Ayuda con este programa!

   
Vista:

Ayuda con este programa!

Publicado por Arturo Z (1 intervención) el 21/09/2008 20:33:30
Como haria este programa: Que lea el nombre de un alumno y su calificacion de manera que la entrada sea:

"Juanito Perez Gomez

10.0 9.3 6.5" *

Que se alamacenen los datos en arreglos

char nombre [20], amat [20]; amat: materia
float calif [3];

usar la funcion "gets" para leer el nombre

que calcule el prmedio e imprima:
"Perez Gomez Juanito (10.0+9.3+6.5)"-- con un solo decimal *

pero si quiere repitri el programa, si el usuario escribe "si" repetir (el si que vaya en estas forma Si, SI o sI)

que imprima al final
el nombre
las calificaciones y el promedio
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda con este programa!

Publicado por jose (21 intervenciones) el 16/01/2009 02:48:54
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

/* _cutstr : Separador de palabras */
char ** _cutstr( char * text,
char delimiter,
int * total )
{

int n = 0; // ancho de palabra (lenght).
int i = 0; // contador de palabras (total).
char * tmp = text; // palabra a copiar.
char ** array = 0; // NULL.


while( 1 )
{
if( *text == delimiter ||
*text == 0)
{

if( n > 0 )
{
i++;
array = (char**)realloc( array, i * 4 );
array[i-1] = (char*)malloc( n + 1 );
strncpy( array[i-1], tmp, n );
array[i-1][n] = 0;
}


if( *text == 0 )
{ goto end; }

tmp = text + 1;
n = -1;
}

text++;
n++;
}

end:

*total = i;
return array;
}

void main()
{

/*
"Juanito Perez Gomez
10.0 9. 3 6.5
*/

char nombre [20], calificaciones[20];
gets( nombre );
gets( calificaciones );

char ** array;
int total;
float suma = 0;

// cortando palabras con delimitador (,) coma.
array = _cutstr( calificaciones, ',', &total );

// sumando calificaciones.
for( int i=0; i<total; i++ )
{
suma += atof( array[i] );
free( array[i] );

}

// mostrando en pantalla.
printf( " RESULTADO. " );
printf( "nombre = %s ", nombre );
printf( "calificaciones = %s ", calificaciones );

if( suma && total)
{
// un solo decimal %1G.
printf( "promedio = %1G ", suma / total);
}

printf( " " );

// liberando memoria.
// variable hechas con malloc.
free( array );

}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar