<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>http://wiki.cabal.mx/index.php?action=history&amp;feed=atom&amp;title=Curso_de_Programaci%C3%B3n_en_C%2FProg118</id>
	<title>Curso de Programación en C/Prog118 - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.cabal.mx/index.php?action=history&amp;feed=atom&amp;title=Curso_de_Programaci%C3%B3n_en_C%2FProg118"/>
	<link rel="alternate" type="text/html" href="http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog118&amp;action=history"/>
	<updated>2026-05-16T09:40:29Z</updated>
	<subtitle>Historial de revisiones para esta página en el wiki</subtitle>
	<generator>MediaWiki 1.32.1</generator>
	<entry>
		<id>http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog118&amp;diff=5520&amp;oldid=prev</id>
		<title>Perseuz: /* Prog118 */</title>
		<link rel="alternate" type="text/html" href="http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog118&amp;diff=5520&amp;oldid=prev"/>
		<updated>2014-06-04T22:32:50Z</updated>

		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Prog118&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;__NOTOC__&lt;br /&gt;
* [[:#Prog118 | Arreglos de structs]]&lt;br /&gt;
** [[:#Resultado | Resultado]]&lt;br /&gt;
** [[:#Explicación | Explicación]]&lt;br /&gt;
&lt;br /&gt;
== Prog118 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot; line=&amp;quot;GESHI_FANCY_LINE_NUMBERS&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define MAXTITL   40&lt;br /&gt;
#define MAXAUTL   40&lt;br /&gt;
#define MAXVALL   12&lt;br /&gt;
#define MAXLIBROS   100&lt;br /&gt;
&lt;br /&gt;
struct Libro {&lt;br /&gt;
    char Titulo[MAXTITL];&lt;br /&gt;
    char Autor[MAXAUTL];&lt;br /&gt;
    float Valor;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
int main( void )&lt;br /&gt;
{&lt;br /&gt;
  struct Libro Biblioteca[MAXLIBROS];&lt;br /&gt;
  int   Conteo = 0,&lt;br /&gt;
        Index,&lt;br /&gt;
        NumPuntos,&lt;br /&gt;
        i;&lt;br /&gt;
  char  ValSTR[MAXVALL];&lt;br /&gt;
&lt;br /&gt;
  printf( &amp;quot;Ingresa el nombre del libro: &amp;quot; );&lt;br /&gt;
  while( Conteo &amp;lt; MAXLIBROS )&lt;br /&gt;
  {&lt;br /&gt;
    if( fgets( Biblioteca[Conteo].Titulo, MAXTITL - 2, stdin ) &amp;amp;&amp;amp;&lt;br /&gt;
               Biblioteca[Conteo].Titulo[0] != &amp;#039;\n&amp;#039; )&lt;br /&gt;
    {&lt;br /&gt;
      if( *(Biblioteca[Conteo].Titulo +&lt;br /&gt;
            strlen( Biblioteca[Conteo].Titulo ) -1 ) != &amp;#039;\n&amp;#039; )&lt;br /&gt;
      {&lt;br /&gt;
        printf( &amp;quot;El titulo que entraste es demasiado largo.\n&amp;quot;&lt;br /&gt;
                &amp;quot;Solo %d chars MAX\n&amp;quot;, MAXTITL - 2 );&lt;br /&gt;
        exit(1);&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      *(Biblioteca[Conteo].Titulo +&lt;br /&gt;
        strlen( Biblioteca[Conteo].Titulo ) -1 ) = &amp;#039;\0&amp;#039;;&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
      break;&lt;br /&gt;
&lt;br /&gt;
    printf( &amp;quot;Ingresa el nombre del autor: &amp;quot; );&lt;br /&gt;
    if( fgets( Biblioteca[Conteo].Autor, MAXAUTL - 2, stdin ) &amp;amp;&amp;amp;&lt;br /&gt;
               Biblioteca[Conteo].Autor[0] != &amp;#039;\n&amp;#039; )&lt;br /&gt;
    {&lt;br /&gt;
      if( *(Biblioteca[Conteo].Autor +&lt;br /&gt;
            strlen( Biblioteca[Conteo].Autor ) -1 ) != &amp;#039;\n&amp;#039; )&lt;br /&gt;
      {&lt;br /&gt;
        printf( &amp;quot;El autor que entraste es demasiado largo.\n&amp;quot;&lt;br /&gt;
                &amp;quot;Solo %d chars MAX\n&amp;quot;, MAXAUTL - 2 );&lt;br /&gt;
        exit(1);&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      *(Biblioteca[Conteo].Autor +&lt;br /&gt;
        strlen( Biblioteca[Conteo].Autor ) -1 ) = &amp;#039;\0&amp;#039;;&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
      printf( &amp;quot;Faltan el nombre del autor de \&amp;quot;%s\&amp;quot;\n&amp;quot;,&lt;br /&gt;
               Biblioteca[Conteo].Titulo );&lt;br /&gt;
      exit(1);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    NumPuntos = 0;&lt;br /&gt;
    printf( &amp;quot;Ingresa el valor: &amp;quot; );&lt;br /&gt;
    if( fgets( ValSTR, MAXVALL - 2, stdin ) &amp;amp;&amp;amp; ValSTR[0] != &amp;#039;\n&amp;#039; )&lt;br /&gt;
    {&lt;br /&gt;
      if( *(ValSTR + strlen( ValSTR ) -1 ) != &amp;#039;\n&amp;#039; )&lt;br /&gt;
      {&lt;br /&gt;
        printf( &amp;quot;El valor que entraste es demasiado largo.\n&amp;quot;&lt;br /&gt;
                &amp;quot;Solo %d chars MAX\n&amp;quot;, MAXVALL - 2 );&lt;br /&gt;
        exit(1);&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      *(ValSTR + strlen( ValSTR ) -1 ) = &amp;#039;\0&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
      if( ValSTR[0] == &amp;#039;-&amp;#039; )&lt;br /&gt;
      {&lt;br /&gt;
        puts( &amp;quot;No se permiten valores negativos.&amp;quot; );&lt;br /&gt;
        exit(1);&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      for( i = 0; i &amp;lt; strlen( ValSTR ) - 1; i++ )&lt;br /&gt;
      {&lt;br /&gt;
        if( ValSTR[i] &amp;lt; &amp;#039;0&amp;#039; ||  ValSTR[i] &amp;gt; &amp;#039;9&amp;#039; )&lt;br /&gt;
        {&lt;br /&gt;
          if( ValSTR[i] == &amp;#039;.&amp;#039; )&lt;br /&gt;
          {&lt;br /&gt;
            if( ++NumPuntos &amp;gt; 1 )&lt;br /&gt;
            {&lt;br /&gt;
              fprintf( stderr, &amp;quot;Se permite solo 1 punto.\n&amp;quot; );&lt;br /&gt;
              exit(1);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            if( strlen( ValSTR ) - i &amp;gt; 3 )&lt;br /&gt;
            {&lt;br /&gt;
              puts( &amp;quot;Se permiten solo 2 decimales después del punto.&amp;quot; );&lt;br /&gt;
              exit(1);&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
          else&lt;br /&gt;
          {&lt;br /&gt;
            puts( &amp;quot;Caracteres ilegales en su valor.&amp;quot; );&lt;br /&gt;
            exit(1);&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      Biblioteca[Conteo++].Valor = atof( ValSTR );&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
      printf( &amp;quot;Faltan el valor de \&amp;quot;%s\&amp;quot;\n&amp;quot;, Biblioteca[Conteo].Titulo );&lt;br /&gt;
      exit(1);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if( Conteo &amp;lt; MAXLIBROS )&lt;br /&gt;
      printf( &amp;quot;Ingresa el siguiente titulo: (&amp;lt;Enter&amp;gt; para terminar): &amp;quot; );&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  if (Conteo &amp;gt; 0)&lt;br /&gt;
  {&lt;br /&gt;
    puts( &amp;quot;Aquí está la lista de tus libros:&amp;quot; );&lt;br /&gt;
    for (Index = 0; Index &amp;lt; Conteo; Index++)&lt;br /&gt;
      printf( &amp;quot;\t\&amp;quot;%s\&amp;quot; por \&amp;quot;%s\&amp;quot;: $%.2f\n&amp;quot;, Biblioteca[Index].Titulo,&lt;br /&gt;
            Biblioteca[Index].Autor, Biblioteca[Index].Valor);&lt;br /&gt;
  }&lt;br /&gt;
  else&lt;br /&gt;
    puts( &amp;quot;Lo siento pero no tengo libros para mostrar.&amp;quot; );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Resultado ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[rrc@llawyr CClase]$ gcc -Wall -o Prog118 Prog118.c&lt;br /&gt;
[rrc@llawyr CClase]$ ./Prog118&lt;br /&gt;
Ingresa el nombre del libro: &lt;br /&gt;
Lo siento pero no tengo libros para mostrar.&lt;br /&gt;
[rrc@llawyr CClase]$ ./Prog118&lt;br /&gt;
Ingresa el nombre del libro: Libro 118&lt;br /&gt;
Ingresa el nombre del autor: &lt;br /&gt;
Faltan el nombre del autor de &amp;quot;Libro 118&amp;quot;&lt;br /&gt;
[rrc@llawyr CClase]$ gcc -Wall -o Prog118 Prog118.c&lt;br /&gt;
[rrc@llawyr CClase]$ ./Prog118&lt;br /&gt;
Ingresa el nombre del libro: Libro 1&lt;br /&gt;
Ingresa el nombre del autor: Autor 1&lt;br /&gt;
Ingresa el valor: &lt;br /&gt;
Faltan el valor de &amp;quot;Libro 1&amp;quot;&lt;br /&gt;
[rrc@llawyr CClase]$ ./Prog118&lt;br /&gt;
Ingresa el nombre del libro: Libro 1&lt;br /&gt;
Ingresa el nombre del autor: Autor 1&lt;br /&gt;
Ingresa el valor: 34&lt;br /&gt;
Ingresa el siguiente titulo: (&amp;lt;Enter&amp;gt; para terminar): &lt;br /&gt;
Aquí está la lista de tus libros:&lt;br /&gt;
    &amp;quot;Libro 1&amp;quot; por &amp;quot;Autor 1&amp;quot;: $34.00&lt;br /&gt;
[rrc@llawyr CClase]$ ./Prog118&lt;br /&gt;
Ingresa el nombre del libro: Libro 1&lt;br /&gt;
Ingresa el nombre del autor: Autor 1&lt;br /&gt;
Ingresa el valor: 45.33&lt;br /&gt;
Ingresa el siguiente titulo: (&amp;lt;Enter&amp;gt; para terminar): Libro 2&lt;br /&gt;
Ingresa el nombre del autor: Autor 2&lt;br /&gt;
Ingresa el valor: 53&lt;br /&gt;
Ingresa el siguiente titulo: (&amp;lt;Enter&amp;gt; para terminar): &lt;br /&gt;
Aquí es la lista de sus libros:&lt;br /&gt;
    &amp;quot;Libro 1&amp;quot; por &amp;quot;Autor 1&amp;quot;: $45.33&lt;br /&gt;
    &amp;quot;Libro 2&amp;quot; por &amp;quot;Autor 2&amp;quot;: $53.00&lt;br /&gt;
[rrc@llawyr CClase]$ &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Explicación ===&lt;br /&gt;
 &lt;br /&gt;
[[Category:Programación en C]]&lt;br /&gt;
[[Category:CCabal]]&lt;br /&gt;
[[Category:CursoC]]&lt;/div&gt;</summary>
		<author><name>Perseuz</name></author>
		
	</entry>
</feed>