<?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%2FProg117</id>
	<title>Curso de Programación en C/Prog117 - 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%2FProg117"/>
	<link rel="alternate" type="text/html" href="http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog117&amp;action=history"/>
	<updated>2026-04-10T18:51:50Z</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/Prog117&amp;diff=5518&amp;oldid=prev</id>
		<title>Perseuz: /* Prog117 */</title>
		<link rel="alternate" type="text/html" href="http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog117&amp;diff=5518&amp;oldid=prev"/>
		<updated>2014-06-04T15:13:29Z</updated>

		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Prog117&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;
* [[:#Prog117 | struct]]&lt;br /&gt;
** [[:#Resultado | Resultado]]&lt;br /&gt;
** [[:#Explicación | Explicación]]&lt;br /&gt;
&lt;br /&gt;
== Prog117 ==&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;
#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  41&lt;br /&gt;
#define MAXAUTL  31&lt;br /&gt;
#define MAXVALL  10&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
struct Libro&lt;br /&gt;
{&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;
  int    i;&lt;br /&gt;
  char   ValSTR[MAXVALL + 1];&lt;br /&gt;
  struct Libro Biblio;&lt;br /&gt;
&lt;br /&gt;
  printf( &amp;quot;Ingresa el nombre del libro: &amp;quot; );&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  fgets( Biblio.Titulo, MAXTITL - 2, stdin );&lt;br /&gt;
&lt;br /&gt;
  if( *(Biblio.Titulo + strlen( Biblio.Titulo ) -1 ) != &amp;#039;\n&amp;#039; )&lt;br /&gt;
  {&lt;br /&gt;
    printf( &amp;quot;El nombre 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;
  else&lt;br /&gt;
    *(Biblio.Titulo + strlen( Biblio.Titulo ) -1 ) = &amp;#039;\0&amp;#039;; &lt;br /&gt;
&lt;br /&gt;
  printf( &amp;quot;Ingresa el nombre del autor: &amp;quot; );&lt;br /&gt;
&lt;br /&gt;
  fgets( Biblio.Autor, MAXAUTL - 2, stdin );&lt;br /&gt;
&lt;br /&gt;
  if( *(Biblio.Autor + strlen( Biblio.Autor ) -1 ) != &amp;#039;\n&amp;#039; )&lt;br /&gt;
  {&lt;br /&gt;
    printf( &amp;quot;El nombre 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;
  else&lt;br /&gt;
    *(Biblio.Autor + strlen( Biblio.Autor ) -1 ) = &amp;#039;\0&amp;#039;; &lt;br /&gt;
&lt;br /&gt;
  printf( &amp;quot;Ingresa el valor: &amp;quot; );&lt;br /&gt;
  scanf( &amp;quot;%10s&amp;quot;, ValSTR );&lt;br /&gt;
&lt;br /&gt;
  if( strlen( ValSTR ) &amp;gt; MAXVALL -1 )&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 - 1 );&lt;br /&gt;
    exit(1);&lt;br /&gt;
  }&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( 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;
  Biblio.Valor = atof( ValSTR );&lt;br /&gt;
&lt;br /&gt;
  printf( &amp;quot;%s por %s: $%.2f\n&amp;quot;, Biblio.Titulo,&lt;br /&gt;
          Biblio.Autor, Biblio.Valor );&lt;br /&gt;
  printf( &amp;quot;%s: \&amp;quot;%s\&amp;quot; ($%.2f)\n&amp;quot;, Biblio.Autor,&lt;br /&gt;
          Biblio.Titulo, Biblio.Valor );&lt;br /&gt;
  printf( &amp;quot;Listo.\n&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 Prog117 Prog117.c&lt;br /&gt;
[rrc@llawyr CClase]$ ./Prog117&lt;br /&gt;
Ingresa el nombre del libro: Mi Libro&lt;br /&gt;
Ingresa el nombre del autor: El Autor&lt;br /&gt;
Ingresa el valor: 345&lt;br /&gt;
Mi Libro por El Autor: $345.00&lt;br /&gt;
El Autor: &amp;quot;Mi Libro&amp;quot; ($345.00)&lt;br /&gt;
Listo.&lt;br /&gt;
[rrc@llawyr CClase]$ ./Prog117&lt;br /&gt;
Ingresa el nombre del libro: Mi Otro Libro&lt;br /&gt;
Ingresa el nombre del autor: El otro Autor&lt;br /&gt;
Ingresa el valor: -34.56&lt;br /&gt;
Se permiten valores negativos.&lt;br /&gt;
[rrc@llawyr CClase]$ ./Prog117&lt;br /&gt;
Ingresa el nombre del libro: Un Otro Libro&lt;br /&gt;
Ingresa el nombre del autor: Un Otro Auto&lt;br /&gt;
Ingresa el valor: 4567543.34&lt;br /&gt;
El valor que entraste es demasiado largo.&lt;br /&gt;
Solo 9 chars MAX&lt;br /&gt;
[rrc@llawyr CClase]$ ./Prog117&lt;br /&gt;
Ingresa el nombre del libro: Otro Libro&lt;br /&gt;
Ingresa el nombre del autor: Otro Autor&lt;br /&gt;
Ingresa el valor: 34566.456&lt;br /&gt;
Se permiten solo 2 numerales después del punto.&lt;br /&gt;
[rrc@llawyr CClase]$ ./Prog117&lt;br /&gt;
Ingresa el nombre del libro: Otro Libro&lt;br /&gt;
Ingresa el nombre del autor: Otra Autora&lt;br /&gt;
Ingresa el valor: 345r.56&lt;br /&gt;
Caracteres ilegales en su valor.&lt;br /&gt;
[rrc@llawyr CClase]$ ./Prog117&lt;br /&gt;
Ingresa el nombre del libro: Ultimo Libro&lt;br /&gt;
Ingresa el nombre del autor: Ultimo Autor&lt;br /&gt;
Ingresa el valor: 435456.43&lt;br /&gt;
Ultimo Libro por Ultimo Autor: $435456.44&lt;br /&gt;
Ultimo Autor: &amp;quot;Ultimo Libro&amp;quot; ($435456.44)&lt;br /&gt;
Listo.&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>