<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>http://wiki.cabal.mx/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Perseuz</id>
	<title>WikiCabal - Contribuciones del usuario [es]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.cabal.mx/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Perseuz"/>
	<link rel="alternate" type="text/html" href="http://wiki.cabal.mx/index.php/Especial:Contribuciones/Perseuz"/>
	<updated>2026-05-04T00:57:12Z</updated>
	<subtitle>Contribuciones del usuario</subtitle>
	<generator>MediaWiki 1.32.1</generator>
	<entry>
		<id>http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog131&amp;diff=5555</id>
		<title>Curso de Programación en C/Prog131</title>
		<link rel="alternate" type="text/html" href="http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog131&amp;diff=5555"/>
		<updated>2014-06-10T19:45:31Z</updated>

		<summary type="html">&lt;p&gt;Perseuz: /* Prog131 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
* [[:#Prog131 | Más DEFINE]]&lt;br /&gt;
** [[:#Resultado | Resultado]]&lt;br /&gt;
** [[:#Explicación | Explicación]]&lt;br /&gt;
&lt;br /&gt;
== Prog131 ==&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;
&lt;br /&gt;
#define DOS 2        /* Puedes usar comentarios si quieres */&lt;br /&gt;
#define OW &amp;quot;La consistencia es el último refugio de l\&lt;br /&gt;
os con poco imaginación. - Oscar Wilde&amp;quot;&lt;br /&gt;
#define CUADRADO  DOS*DOS&lt;br /&gt;
#define PX printf(&amp;quot;X es %d.\n&amp;quot;, x)&lt;br /&gt;
#define FMT  &amp;quot;X es %d.\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
  int x = DOS;&lt;br /&gt;
&lt;br /&gt;
  PX;&lt;br /&gt;
  x = CUADRADO;&lt;br /&gt;
  printf(FMT, x);&lt;br /&gt;
  printf(&amp;quot;%s\n&amp;quot;, OW);&lt;br /&gt;
  printf(&amp;quot;DOS: OW\n&amp;quot;);&lt;br /&gt;
  return 0;&lt;br /&gt;
}&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@pwyr CClase]$ gcc -Wall -O2 -o Prog131 Prog131.c&lt;br /&gt;
[rrc@pwyr CClase]$ ./Prog131&lt;br /&gt;
X es 2.&lt;br /&gt;
X es 4.&lt;br /&gt;
La consistencia es el último refugio de los con poco imaginación. - Oscar Wilde&lt;br /&gt;
DOS: OW&lt;br /&gt;
[rrc@pwyr 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>
	<entry>
		<id>http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog129&amp;diff=5553</id>
		<title>Curso de Programación en C/Prog129</title>
		<link rel="alternate" type="text/html" href="http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog129&amp;diff=5553"/>
		<updated>2014-06-10T16:36:34Z</updated>

		<summary type="html">&lt;p&gt;Perseuz: /* Prog129 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
* [[:#Prog129 | Bitwise AND para pagar bits]]&lt;br /&gt;
** [[:#Resultado | Resultado]]&lt;br /&gt;
** [[:#Explicación | Explicación]]&lt;br /&gt;
&lt;br /&gt;
== Prog129 ==&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;
int main( void )&lt;br /&gt;
{&lt;br /&gt;
  unsigned char Mascara,&lt;br /&gt;
                Semaforos;&lt;br /&gt;
&lt;br /&gt;
  char Buf[7];&lt;br /&gt;
&lt;br /&gt;
  int  i,&lt;br /&gt;
       Prueba;&lt;br /&gt;
&lt;br /&gt;
  puts( &amp;quot;\nEl bitwise AND es usado a veces para&amp;quot; );&lt;br /&gt;
  puts( &amp;quot;apagar algunos bits en un entero\n&amp;quot; );&lt;br /&gt;
  printf( &amp;quot;Dame un número positivo entre 0 y 255: &amp;quot; );&lt;br /&gt;
  while( fgets( Buf, 5, stdin ) &amp;amp;&amp;amp; Buf[0] != &amp;#039;\n&amp;#039; )&lt;br /&gt;
  {&lt;br /&gt;
    if( *(Buf + strlen( Buf ) -1 ) != &amp;#039;\n&amp;#039; )&lt;br /&gt;
    {&lt;br /&gt;
      fputs( &amp;quot;La línea que entraste es demasiado larga.\nSolo 3 chars MAX&amp;quot;,&lt;br /&gt;
                                                                     stderr );&lt;br /&gt;
      exit(1);&lt;br /&gt;
    }&lt;br /&gt;
    *(Buf + strlen( Buf ) -1 ) = &amp;#039;\0&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
    for( i = 0; i &amp;lt; strlen( Buf ); i++ )&lt;br /&gt;
    {&lt;br /&gt;
      if( Buf[i] &amp;lt; &amp;#039;0&amp;#039; || Buf[i] &amp;gt; &amp;#039;9&amp;#039; )&lt;br /&gt;
      {&lt;br /&gt;
        fputs( &amp;quot;Caracteres ilegales en su ingreso\n&amp;quot;, stderr );&lt;br /&gt;
        exit(1);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    Prueba = atoi( Buf);&lt;br /&gt;
    if( Prueba &amp;gt; 255 )&lt;br /&gt;
    {&lt;br /&gt;
      fputs( &amp;quot;Su entrada está fuera del rango especificado\n&amp;quot;, stderr );&lt;br /&gt;
      exit(1);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    for( i = 1; i &amp;lt;= 8; i++ )&lt;br /&gt;
    {&lt;br /&gt;
      switch( i )&lt;br /&gt;
      {&lt;br /&gt;
        case 1: Mascara = 0xfe;&lt;br /&gt;
                Semaforos = Prueba;&lt;br /&gt;
                Semaforos &amp;amp;= Mascara;&lt;br /&gt;
            printf( &amp;quot;Su número %d se cambia a %d cuando bit %d está apagado\n&amp;quot;,&lt;br /&gt;
                                                      Prueba, Semaforos, i -1 );&lt;br /&gt;
	    break;&lt;br /&gt;
        case 2: Mascara = 0xfd;&lt;br /&gt;
                Semaforos = Prueba;&lt;br /&gt;
                Semaforos &amp;amp;= Mascara;&lt;br /&gt;
            printf( &amp;quot;Su número %d se cambia a %d cuando bit %d está apagado\n&amp;quot;,&lt;br /&gt;
                                                      Prueba, Semaforos, i -1 );&lt;br /&gt;
	    break;&lt;br /&gt;
        case 3: Mascara = 0xfb;&lt;br /&gt;
                Semaforos = Prueba;&lt;br /&gt;
                Semaforos &amp;amp;= Mascara;&lt;br /&gt;
            printf( &amp;quot;Su número %d se cambia a %d cuando bit %d está apagado\n&amp;quot;,&lt;br /&gt;
                                                      Prueba, Semaforos, i -1 );&lt;br /&gt;
	    break;&lt;br /&gt;
        case 4: Mascara = 0xf7;&lt;br /&gt;
                Semaforos = Prueba;&lt;br /&gt;
                Semaforos &amp;amp;= Mascara;&lt;br /&gt;
            printf( &amp;quot;Su número %d se cambia a %d cuando bit %d está apagado\n&amp;quot;,&lt;br /&gt;
                                                      Prueba, Semaforos, i -1 );&lt;br /&gt;
	    break;&lt;br /&gt;
        case 5: Mascara = 0xef;&lt;br /&gt;
                Semaforos = Prueba;&lt;br /&gt;
                Semaforos &amp;amp;= Mascara;&lt;br /&gt;
            printf( &amp;quot;Su número %d se cambia a %d cuando bit %d está apagado\n&amp;quot;,&lt;br /&gt;
                                                      Prueba, Semaforos, i -1 );&lt;br /&gt;
	    break;&lt;br /&gt;
        case 6: Mascara = 0xdf;&lt;br /&gt;
                Semaforos = Prueba;&lt;br /&gt;
                Semaforos &amp;amp;= Mascara;&lt;br /&gt;
            printf( &amp;quot;Su número %d se cambia a %d cuando bit %d está apagado\n&amp;quot;,&lt;br /&gt;
                                                      Prueba, Semaforos, i -1 );&lt;br /&gt;
	    break;&lt;br /&gt;
        case 7: Mascara = 0xbf;&lt;br /&gt;
                Semaforos = Prueba;&lt;br /&gt;
                Semaforos &amp;amp;= Mascara;&lt;br /&gt;
            printf( &amp;quot;Su número %d se cambia a %d cuando bit %d está apagado\n&amp;quot;,&lt;br /&gt;
                                                      Prueba, Semaforos, i -1 );&lt;br /&gt;
	    break;&lt;br /&gt;
        case 8: Mascara = 0x7f;&lt;br /&gt;
                Semaforos = Prueba;&lt;br /&gt;
                Semaforos &amp;amp;= Mascara;&lt;br /&gt;
            printf( &amp;quot;Su número %d se cambia a %d cuando bit %d está apagado\n&amp;quot;,&lt;br /&gt;
                                                      Prueba, Semaforos, i -1 );&lt;br /&gt;
	    break;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    printf( &amp;quot;\nDame un número positivo entre 0 y 255&amp;quot;&lt;br /&gt;
            &amp;quot; (&amp;lt;Enter&amp;gt; para terminar): &amp;quot; );&lt;br /&gt;
  }&lt;br /&gt;
  return 0;&lt;br /&gt;
}&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@AbelLap CClase]$ gcc -Wall -o Prog129 Prog129.c&lt;br /&gt;
[rrc@AbelLap CClase]$ ./Prog129&lt;br /&gt;
&lt;br /&gt;
El bitwise AND es usado a veces para&lt;br /&gt;
apagar algunos bits en un entero&lt;br /&gt;
&lt;br /&gt;
Dame un número positivo entre 0 y 255: 255&lt;br /&gt;
Su número 255 se cambia a 254 cuando bit 0 está apagado&lt;br /&gt;
Su número 255 se cambia a 253 cuando bit 1 está apagado&lt;br /&gt;
Su número 255 se cambia a 251 cuando bit 2 está apagado&lt;br /&gt;
Su número 255 se cambia a 247 cuando bit 3 está apagado&lt;br /&gt;
Su número 255 se cambia a 239 cuando bit 4 está apagado&lt;br /&gt;
Su número 255 se cambia a 223 cuando bit 5 está apagado&lt;br /&gt;
Su número 255 se cambia a 191 cuando bit 6 está apagado&lt;br /&gt;
Su número 255 se cambia a 127 cuando bit 7 está apagado&lt;br /&gt;
&lt;br /&gt;
Dame un número positivo entre 0 y 255 (&amp;lt;Enter&amp;gt; para terminar): 127&lt;br /&gt;
Su número 127 se cambia a 126 cuando bit 0 está apagado&lt;br /&gt;
Su número 127 se cambia a 125 cuando bit 1 está apagado&lt;br /&gt;
Su número 127 se cambia a 123 cuando bit 2 está apagado&lt;br /&gt;
Su número 127 se cambia a 119 cuando bit 3 está apagado&lt;br /&gt;
Su número 127 se cambia a 111 cuando bit 4 está apagado&lt;br /&gt;
Su número 127 se cambia a 95 cuando bit 5 está apagado&lt;br /&gt;
Su número 127 se cambia a 63 cuando bit 6 está apagado&lt;br /&gt;
Su número 127 se cambia a 127 cuando bit 7 está apagado&lt;br /&gt;
&lt;br /&gt;
Dame un número positivo entre 0 y 255 (&amp;lt;Enter&amp;gt; para terminar): 63&lt;br /&gt;
Su número 63 se cambia a 62 cuando bit 0 está apagado&lt;br /&gt;
Su número 63 se cambia a 61 cuando bit 1 está apagado&lt;br /&gt;
Su número 63 se cambia a 59 cuando bit 2 está apagado&lt;br /&gt;
Su número 63 se cambia a 55 cuando bit 3 está apagado&lt;br /&gt;
Su número 63 se cambia a 47 cuando bit 4 está apagado&lt;br /&gt;
Su número 63 se cambia a 31 cuando bit 5 está apagado&lt;br /&gt;
Su número 63 se cambia a 63 cuando bit 6 está apagado&lt;br /&gt;
Su número 63 se cambia a 63 cuando bit 7 está apagado&lt;br /&gt;
&lt;br /&gt;
Dame un número positivo entre 0 y 255 (&amp;lt;Enter&amp;gt; para terminar): 31&lt;br /&gt;
Su número 31 se cambia a 30 cuando bit 0 está apagado&lt;br /&gt;
Su número 31 se cambia a 29 cuando bit 1 está apagado&lt;br /&gt;
Su número 31 se cambia a 27 cuando bit 2 está apagado&lt;br /&gt;
Su número 31 se cambia a 23 cuando bit 3 está apagado&lt;br /&gt;
Su número 31 se cambia a 15 cuando bit 4 está apagado&lt;br /&gt;
Su número 31 se cambia a 31 cuando bit 5 está apagado&lt;br /&gt;
Su número 31 se cambia a 31 cuando bit 6 está apagado&lt;br /&gt;
Su número 31 se cambia a 31 cuando bit 7 está apagado&lt;br /&gt;
&lt;br /&gt;
Dame un número positivo entre 0 y 255 (&amp;lt;Enter&amp;gt; para terminar): 15&lt;br /&gt;
Su número 15 se cambia a 14 cuando bit 0 está apagado&lt;br /&gt;
Su número 15 se cambia a 13 cuando bit 1 está apagado&lt;br /&gt;
Su número 15 se cambia a 11 cuando bit 2 está apagado&lt;br /&gt;
Su número 15 se cambia a 7 cuando bit 3 está apagado&lt;br /&gt;
Su número 15 se cambia a 15 cuando bit 4 está apagado&lt;br /&gt;
Su número 15 se cambia a 15 cuando bit 5 está apagado&lt;br /&gt;
Su número 15 se cambia a 15 cuando bit 6 está apagado&lt;br /&gt;
Su número 15 se cambia a 15 cuando bit 7 está apagado&lt;br /&gt;
&lt;br /&gt;
Dame un número positivo entre 0 y 255 (&amp;lt;Enter&amp;gt; para terminar): 7&lt;br /&gt;
Su número 7 se cambia a 6 cuando bit 0 está apagado&lt;br /&gt;
Su número 7 se cambia a 5 cuando bit 1 está apagado&lt;br /&gt;
Su número 7 se cambia a 3 cuando bit 2 está apagado&lt;br /&gt;
Su número 7 se cambia a 7 cuando bit 3 está apagado&lt;br /&gt;
Su número 7 se cambia a 7 cuando bit 4 está apagado&lt;br /&gt;
Su número 7 se cambia a 7 cuando bit 5 está apagado&lt;br /&gt;
Su número 7 se cambia a 7 cuando bit 6 está apagado&lt;br /&gt;
Su número 7 se cambia a 7 cuando bit 7 está apagado&lt;br /&gt;
&lt;br /&gt;
Dame un número positivo entre 0 y 255 (&amp;lt;Enter&amp;gt; para terminar): 3&lt;br /&gt;
Su número 3 se cambia a 2 cuando bit 0 está apagado&lt;br /&gt;
Su número 3 se cambia a 1 cuando bit 1 está apagado&lt;br /&gt;
Su número 3 se cambia a 3 cuando bit 2 está apagado&lt;br /&gt;
Su número 3 se cambia a 3 cuando bit 3 está apagado&lt;br /&gt;
Su número 3 se cambia a 3 cuando bit 4 está apagado&lt;br /&gt;
Su número 3 se cambia a 3 cuando bit 5 está apagado&lt;br /&gt;
Su número 3 se cambia a 3 cuando bit 6 está apagado&lt;br /&gt;
Su número 3 se cambia a 3 cuando bit 7 está apagado&lt;br /&gt;
&lt;br /&gt;
Dame un número positivo entre 0 y 255 (&amp;lt;Enter&amp;gt; para terminar): 1&lt;br /&gt;
Su número 1 se cambia a 0 cuando bit 0 está apagado&lt;br /&gt;
Su número 1 se cambia a 1 cuando bit 1 está apagado&lt;br /&gt;
Su número 1 se cambia a 1 cuando bit 2 está apagado&lt;br /&gt;
Su número 1 se cambia a 1 cuando bit 3 está apagado&lt;br /&gt;
Su número 1 se cambia a 1 cuando bit 4 está apagado&lt;br /&gt;
Su número 1 se cambia a 1 cuando bit 5 está apagado&lt;br /&gt;
Su número 1 se cambia a 1 cuando bit 6 está apagado&lt;br /&gt;
Su número 1 se cambia a 1 cuando bit 7 está apagado&lt;br /&gt;
&lt;br /&gt;
Dame un número positivo entre 0 y 255 (&amp;lt;Enter&amp;gt; para terminar): 0&lt;br /&gt;
Su número 0 se cambia a 0 cuando bit 0 está apagado&lt;br /&gt;
Su número 0 se cambia a 0 cuando bit 1 está apagado&lt;br /&gt;
Su número 0 se cambia a 0 cuando bit 2 está apagado&lt;br /&gt;
Su número 0 se cambia a 0 cuando bit 3 está apagado&lt;br /&gt;
Su número 0 se cambia a 0 cuando bit 4 está apagado&lt;br /&gt;
Su número 0 se cambia a 0 cuando bit 5 está apagado&lt;br /&gt;
Su número 0 se cambia a 0 cuando bit 6 está apagado&lt;br /&gt;
Su número 0 se cambia a 0 cuando bit 7 está apagado&lt;br /&gt;
&lt;br /&gt;
Dame un número positivo entre 0 y 255 (&amp;lt;Enter&amp;gt; para terminar): 35&lt;br /&gt;
Su número 35 se cambia a 34 cuando bit 0 está apagado&lt;br /&gt;
Su número 35 se cambia a 33 cuando bit 1 está apagado&lt;br /&gt;
Su número 35 se cambia a 35 cuando bit 2 está apagado&lt;br /&gt;
Su número 35 se cambia a 35 cuando bit 3 está apagado&lt;br /&gt;
Su número 35 se cambia a 35 cuando bit 4 está apagado&lt;br /&gt;
Su número 35 se cambia a 3 cuando bit 5 está apagado&lt;br /&gt;
Su número 35 se cambia a 35 cuando bit 6 está apagado&lt;br /&gt;
Su número 35 se cambia a 35 cuando bit 7 está apagado&lt;br /&gt;
&lt;br /&gt;
Dame un número positivo entre 0 y 255 (&amp;lt;Enter&amp;gt; para terminar): &lt;br /&gt;
[rrc@AbelLap 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>
	<entry>
		<id>http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog125&amp;diff=5552</id>
		<title>Curso de Programación en C/Prog125</title>
		<link rel="alternate" type="text/html" href="http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog125&amp;diff=5552"/>
		<updated>2014-06-07T23:58:17Z</updated>

		<summary type="html">&lt;p&gt;Perseuz: /* Prog125 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
* [[:#Prog125 | Pointers de funciones]]&lt;br /&gt;
** [[:#Resultado | Resultado]]&lt;br /&gt;
** [[:#Explicación | Explicación]]&lt;br /&gt;
&lt;br /&gt;
== Prog125 ==&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;
#include &amp;lt;ctype.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
char DesplegaMenu( void );&lt;br /&gt;
void ComeLinea( void );&lt;br /&gt;
void Desplega( void (* fp)( char * ), char * str );&lt;br /&gt;
void AMayuscula( char * );&lt;br /&gt;
void AMinuscula( char * );&lt;br /&gt;
void Invierta( char * );&lt;br /&gt;
void Tonto( char * );&lt;br /&gt;
&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
  char Linea[81];&lt;br /&gt;
  char Copia[81];&lt;br /&gt;
  char Seleccion;&lt;br /&gt;
  void (*pfun)(char *);   // Declarar un pointer a función, pfun, que tiene&lt;br /&gt;
                          // argumento de char * y no valor de returno&lt;br /&gt;
  printf( &amp;quot;\nIngresa una línea (&amp;lt;Enter&amp;gt; para terminar): &amp;quot; );&lt;br /&gt;
  while( fgets( Linea, 79, stdin ) &amp;amp;&amp;amp; Linea[0] != &amp;#039;\n&amp;#039; )&lt;br /&gt;
  {&lt;br /&gt;
    if( *(Linea + strlen( Linea ) -1 ) != &amp;#039;\n&amp;#039; )&lt;br /&gt;
    {&lt;br /&gt;
      fputs( &amp;quot;La línea que entraste es demasiado largo.\nSolo 79 chars MAX&amp;quot;,&lt;br /&gt;
                                                                     stderr );&lt;br /&gt;
      exit(1);&lt;br /&gt;
    }&lt;br /&gt;
    *(Linea + strlen( Linea ) -1 ) = &amp;#039;\0&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
    while( ( Seleccion = DesplegaMenu() ) != &amp;#039;s&amp;#039; )&lt;br /&gt;
    {&lt;br /&gt;
      switch( Seleccion )&lt;br /&gt;
      {&lt;br /&gt;
        case &amp;#039;y&amp;#039; : pfun = AMayuscula;   break;&lt;br /&gt;
        case &amp;#039;n&amp;#039; : pfun = AMinuscula;   break;&lt;br /&gt;
        case &amp;#039;i&amp;#039; : pfun = Invierta;     break;&lt;br /&gt;
        case &amp;#039;o&amp;#039; : pfun = Tonto;        break;&lt;br /&gt;
      }&lt;br /&gt;
      strcpy( Copia, Linea );&lt;br /&gt;
      Desplega( pfun, Copia );&lt;br /&gt;
    }&lt;br /&gt;
    printf( &amp;quot;\nIngresa una línea (&amp;lt;Enter&amp;gt; para terminar): &amp;quot; );&lt;br /&gt;
  }&lt;br /&gt;
  puts( &amp;quot;\n¡Adios!\n&amp;quot; );&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
char DesplegaMenu( void )&lt;br /&gt;
{&lt;br /&gt;
  char ans;&lt;br /&gt;
  puts( &amp;quot;\n\t\ty) Todo Mayúsculas  \t\tn) Todo Minúsculas&amp;quot; );&lt;br /&gt;
  puts( &amp;quot;\t\ti) Invertir         \t\to) Cómo original&amp;quot; );&lt;br /&gt;
  puts( &amp;quot;\t\ts) Siguiente string&amp;quot; );&lt;br /&gt;
  printf( &amp;quot;\tElige una opción: &amp;quot; );&lt;br /&gt;
  ans = getchar();&lt;br /&gt;
  ans = tolower(ans);&lt;br /&gt;
  ComeLinea();&lt;br /&gt;
  while( strchr( &amp;quot;ynios&amp;quot;, ans ) == NULL )&lt;br /&gt;
  {&lt;br /&gt;
    printf( &amp;quot;\tElige y, n, i, o, o s: &amp;quot; );&lt;br /&gt;
    ans = tolower( getchar() );&lt;br /&gt;
    ComeLinea();&lt;br /&gt;
  }&lt;br /&gt;
  return ans;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void ComeLinea( void )&lt;br /&gt;
{&lt;br /&gt;
  while( getchar() != &amp;#039;\n&amp;#039; )&lt;br /&gt;
    continue;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void AMayuscula( char * str )&lt;br /&gt;
{&lt;br /&gt;
  while( *str )&lt;br /&gt;
  {&lt;br /&gt;
    *str = toupper( *str );&lt;br /&gt;
    str++;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void AMinuscula( char * str )&lt;br /&gt;
{&lt;br /&gt;
  while( *str )&lt;br /&gt;
  {&lt;br /&gt;
    *str = tolower( *str );&lt;br /&gt;
    str++;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void Invierta( char * str )&lt;br /&gt;
{&lt;br /&gt;
  while( *str )&lt;br /&gt;
  {&lt;br /&gt;
    if( islower( *str ) )&lt;br /&gt;
      *str = toupper( *str );&lt;br /&gt;
    else if( isupper( *str ) )&lt;br /&gt;
      *str = tolower( *str );&lt;br /&gt;
    str++;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void Tonto(char * str)&lt;br /&gt;
{&lt;br /&gt;
  // No cambio el string&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void Desplega( void (* fp)( char * ), char * str )&lt;br /&gt;
{&lt;br /&gt;
    (*fp)( str ); // aplicar la función&lt;br /&gt;
    printf( &amp;quot;\n\tEl Resultado: %s\n&amp;quot;, str );&lt;br /&gt;
}&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@localhost CClase]$ gcc -Wall -o Prog125 Prog125.c&lt;br /&gt;
[rrc@localhost CClase]$ ./Prog125&lt;br /&gt;
&lt;br /&gt;
Ingresa una línea (&amp;lt;Enter&amp;gt; para terminar): &lt;br /&gt;
&lt;br /&gt;
¡Adios!&lt;br /&gt;
&lt;br /&gt;
[rrc@localhost CClase]$ ./Prog125&lt;br /&gt;
&lt;br /&gt;
Ingresa una línea (&amp;lt;Enter&amp;gt; para terminar): Una Línea&lt;br /&gt;
&lt;br /&gt;
		y) Todo Mayúsculas  		n) Todo Minúsculas&lt;br /&gt;
		i) Invertir         		o) Cómo original&lt;br /&gt;
		s) Siguiente string&lt;br /&gt;
	Elige un opción: y&lt;br /&gt;
&lt;br /&gt;
	El Resultado: UNA LíNEA&lt;br /&gt;
&lt;br /&gt;
		y) Todo Mayúsculas  		n) Todo Minúsculas&lt;br /&gt;
		i) Invertir         		o) Cómo original&lt;br /&gt;
		s) Siguiente string&lt;br /&gt;
	Elige un opción: n&lt;br /&gt;
&lt;br /&gt;
	El Resultado: una línea&lt;br /&gt;
&lt;br /&gt;
		y) Todo Mayúsculas  		n) Todo Minúsculas&lt;br /&gt;
		i) Invertir         		o) Cómo original&lt;br /&gt;
		s) Siguiente string&lt;br /&gt;
	Elige un opción: o&lt;br /&gt;
&lt;br /&gt;
	El Resultado: Una Línea&lt;br /&gt;
&lt;br /&gt;
		y) Todo Mayúsculas  		n) Todo Minúsculas&lt;br /&gt;
		i) Invertir         		o) Cómo original&lt;br /&gt;
		s) Siguiente string&lt;br /&gt;
	Elige un opción: i&lt;br /&gt;
&lt;br /&gt;
	El Resultado: uNA líNEA&lt;br /&gt;
&lt;br /&gt;
		y) Todo Mayúsculas  		n) Todo Minúsculas&lt;br /&gt;
		i) Invertir         		o) Cómo original&lt;br /&gt;
		s) Siguiente string&lt;br /&gt;
	Elige un opción: s&lt;br /&gt;
&lt;br /&gt;
Ingresa una línea (&amp;lt;Enter&amp;gt; para terminar): OTRA línea&lt;br /&gt;
&lt;br /&gt;
		y) Todo Mayúsculas  		n) Todo Minúsculas&lt;br /&gt;
		i) Invertir         		o) Cómo original&lt;br /&gt;
		s) Siguiente string&lt;br /&gt;
	Elige un opción: y&lt;br /&gt;
&lt;br /&gt;
	El Resultado: OTRA LíNEA&lt;br /&gt;
&lt;br /&gt;
		y) Todo Mayúsculas  		n) Todo Minúsculas&lt;br /&gt;
		i) Invertir         		o) Cómo original&lt;br /&gt;
		s) Siguiente string&lt;br /&gt;
	Elige un opción: r&lt;br /&gt;
	Elige y, n, i, o, o s: i&lt;br /&gt;
&lt;br /&gt;
	El Resultado: otra LíNEA&lt;br /&gt;
&lt;br /&gt;
		y) Todo Mayúsculas  		n) Todo Minúsculas&lt;br /&gt;
		i) Invertir         		o) Cómo original&lt;br /&gt;
		s) Siguiente string&lt;br /&gt;
	Elige un opción: n&lt;br /&gt;
&lt;br /&gt;
	El Resultado: otra línea&lt;br /&gt;
&lt;br /&gt;
		y) Todo Mayúsculas  		n) Todo Minúsculas&lt;br /&gt;
		i) Invertir         		o) Cómo original&lt;br /&gt;
		s) Siguiente string&lt;br /&gt;
	Elige un opción: o&lt;br /&gt;
&lt;br /&gt;
	El Resultado: OTRA línea&lt;br /&gt;
&lt;br /&gt;
		y) Todo Mayúsculas  		n) Todo Minúsculas&lt;br /&gt;
		i) Invertir         		o) Cómo original&lt;br /&gt;
		s) Siguiente string&lt;br /&gt;
	Elige un opción: s&lt;br /&gt;
&lt;br /&gt;
Ingresa una línea (&amp;lt;Enter&amp;gt; para terminar): &lt;br /&gt;
&lt;br /&gt;
¡Adios!&lt;br /&gt;
&lt;br /&gt;
[rrc@localhost 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>
	<entry>
		<id>http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog124&amp;diff=5548</id>
		<title>Curso de Programación en C/Prog124</title>
		<link rel="alternate" type="text/html" href="http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog124&amp;diff=5548"/>
		<updated>2014-06-07T16:02:06Z</updated>

		<summary type="html">&lt;p&gt;Perseuz: /* Prog124 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
* [[:#Prog124 | enum]]&lt;br /&gt;
** [[:#Resultado | Resultado]]&lt;br /&gt;
** [[:#Explicación | Explicación]]&lt;br /&gt;
&lt;br /&gt;
== Prog124 ==&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;string.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdbool.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
#include &amp;lt;ctype.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
enum espectro { rojo, naranja, amarillo, verde, azul, violeta };&lt;br /&gt;
&lt;br /&gt;
const char * colores[] = {&amp;quot;rojo&amp;quot;,  &amp;quot;naranja&amp;quot;, &amp;quot;amarillo&amp;quot;,&lt;br /&gt;
                          &amp;quot;verde&amp;quot;, &amp;quot;azul&amp;quot;,    &amp;quot;violeta&amp;quot;};&lt;br /&gt;
#define TAMANO 30&lt;br /&gt;
&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
  char opcion[TAMANO],&lt;br /&gt;
       prueba[TAMANO];&lt;br /&gt;
&lt;br /&gt;
  enum espectro color;&lt;br /&gt;
&lt;br /&gt;
  int i;&lt;br /&gt;
&lt;br /&gt;
  bool color_se_encuentra = false;&lt;br /&gt;
&lt;br /&gt;
  printf( &amp;quot;Ingresa un color (&amp;lt;Enter&amp;gt; para terminar): &amp;quot; );&lt;br /&gt;
  while( fgets( opcion, TAMANO - 2, stdin ) &amp;amp;&amp;amp; opcion[0] != &amp;#039;\n&amp;#039; )&lt;br /&gt;
  {&lt;br /&gt;
    if( *(opcion + strlen( opcion ) -1 ) != &amp;#039;\n&amp;#039; )&lt;br /&gt;
    {&lt;br /&gt;
      printf( &amp;quot;El color que entraste es demasiado largo.\n&amp;quot;&lt;br /&gt;
              &amp;quot;Solo %d chars MAX\n&amp;quot;, TAMANO - 2 );&lt;br /&gt;
      exit(1);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
      *(opcion + strlen( opcion ) -1 ) = &amp;#039;\0&amp;#039;; &lt;br /&gt;
&lt;br /&gt;
    for( i = 0; i &amp;lt; strlen( opcion ); i++ )&lt;br /&gt;
      prueba[i] = tolower( opcion[i] );&lt;br /&gt;
    prueba[i] = &amp;#039;\0&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
    for( color = rojo; color &amp;lt;= violeta; color++ )&lt;br /&gt;
    {&lt;br /&gt;
      if( strcmp( prueba, colores[color] ) == 0 )&lt;br /&gt;
      {&lt;br /&gt;
        color_se_encuentra = true;&lt;br /&gt;
        break;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if( color_se_encuentra )&lt;br /&gt;
      switch( color )&lt;br /&gt;
      {&lt;br /&gt;
        case rojo     :&lt;br /&gt;
             puts( &amp;quot;Las Rosas son de color rojo.&amp;quot; );&lt;br /&gt;
             break;&lt;br /&gt;
        case naranja  :&lt;br /&gt;
             puts( &amp;quot;Las amapolas son de color naranja.&amp;quot; );&lt;br /&gt;
             break;&lt;br /&gt;
        case amarillo :&lt;br /&gt;
             puts( &amp;quot;Las girasoles son de color amarillo.&amp;quot; );&lt;br /&gt;
             break;&lt;br /&gt;
        case verde    :&lt;br /&gt;
             puts( &amp;quot;La hierba es de color verde.&amp;quot; );&lt;br /&gt;
             break;&lt;br /&gt;
        case azul     :&lt;br /&gt;
             puts( &amp;quot;Las jacintos son de color azul.&amp;quot; );&lt;br /&gt;
             break;&lt;br /&gt;
        case violeta  :&lt;br /&gt;
	     puts( &amp;quot;Las violetas son de color violeta.&amp;quot; );&lt;br /&gt;
             break;&lt;br /&gt;
      } &lt;br /&gt;
    else&lt;br /&gt;
      printf( &amp;quot;No conozco el color %s.\n&amp;quot;, opcion );&lt;br /&gt;
    color_se_encuentra = false;&lt;br /&gt;
    printf( &amp;quot;Ingresa un color (&amp;lt;Enter&amp;gt; para terminar): &amp;quot; );&lt;br /&gt;
  }&lt;br /&gt;
  puts( &amp;quot;\n¡Adios!\n&amp;quot; );&lt;br /&gt;
  return 0;&lt;br /&gt;
}&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@localhost CClase]$ gcc -Wall -o Prog123 Prog123.c&lt;br /&gt;
[rrc@localhost CClase]$ ./Prog123&lt;br /&gt;
Ingresa un color (&amp;lt;Enter&amp;gt; para terminar): verde&lt;br /&gt;
La hierba es de color verde.&lt;br /&gt;
Ingresa un color (&amp;lt;Enter&amp;gt; para terminar): VIOLETA&lt;br /&gt;
Las violetas son de color violeta.&lt;br /&gt;
Ingresa un color (&amp;lt;Enter&amp;gt; para terminar): AzUl&lt;br /&gt;
Las jacintos son de color azul.&lt;br /&gt;
Ingresa un color (&amp;lt;Enter&amp;gt; para terminar): AmarillO&lt;br /&gt;
Las girasoles son de color amarillo.&lt;br /&gt;
Ingresa un color (&amp;lt;Enter&amp;gt; para terminar): Purple&lt;br /&gt;
No conozco el color Purple.&lt;br /&gt;
Ingresa un color (&amp;lt;Enter&amp;gt; para terminar): &lt;br /&gt;
&lt;br /&gt;
¡Adios!&lt;br /&gt;
&lt;br /&gt;
[rrc@localhost 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>
	<entry>
		<id>http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog122&amp;diff=5544</id>
		<title>Curso de Programación en C/Prog122</title>
		<link rel="alternate" type="text/html" href="http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog122&amp;diff=5544"/>
		<updated>2014-06-06T19:11:57Z</updated>

		<summary type="html">&lt;p&gt;Perseuz: /* Prog122 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
* [[:#Prog122 | Guardar un iarreglo de structs en un archivo]]&lt;br /&gt;
** [[:#Resultado | Resultado]]&lt;br /&gt;
** [[:#Explicación | Explicación]]&lt;br /&gt;
&lt;br /&gt;
== Prog122 ==&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;
&lt;br /&gt;
  int   Conteo = 0,&lt;br /&gt;
        ConteoDelArchivo,&lt;br /&gt;
        Index,&lt;br /&gt;
        NumPuntos,&lt;br /&gt;
        Tamano = sizeof( struct Libro ),&lt;br /&gt;
        i;&lt;br /&gt;
&lt;br /&gt;
  char  ValSTR[MAXVALL];&lt;br /&gt;
&lt;br /&gt;
  FILE * PLibros;&lt;br /&gt;
&lt;br /&gt;
  if( ( PLibros = fopen( &amp;quot;Libros.dat&amp;quot;, &amp;quot;a+b&amp;quot; ) ) == NULL )&lt;br /&gt;
  {&lt;br /&gt;
    fputs( &amp;quot;No puedo abrir Libros.dat\n&amp;quot;, stderr );&lt;br /&gt;
    exit( 1 );&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  rewind( PLibros );&lt;br /&gt;
&lt;br /&gt;
  while( Conteo &amp;lt; MAXLIBROS &amp;amp;&amp;amp;&lt;br /&gt;
         fread( &amp;amp;Biblioteca[Conteo], Tamano, 1, PLibros ) == 1 )&lt;br /&gt;
  {&lt;br /&gt;
    if( Conteo == 0 )&lt;br /&gt;
      puts( &amp;quot;Los contenidos de Libros.dat ahora:&amp;quot; );&lt;br /&gt;
    printf( &amp;quot;\t%s por %s: $%.2f\n&amp;quot;, Biblioteca[Conteo].Titulo,&lt;br /&gt;
                                    Biblioteca[Conteo].Autor,&lt;br /&gt;
                                    Biblioteca[Conteo].Valor );&lt;br /&gt;
    Conteo++;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  ConteoDelArchivo = Conteo;&lt;br /&gt;
&lt;br /&gt;
  if( Conteo == MAXLIBROS )&lt;br /&gt;
  {&lt;br /&gt;
    fputs( &amp;quot;El archivo: Libros.dat está lleno.&amp;quot;, stderr );&lt;br /&gt;
    fclose( PLibros );&lt;br /&gt;
    exit( 2 );&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  printf( &amp;quot;\nIngresa 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;
        fprintf( stderr, &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;
        fclose( PLibros );&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;
        fprintf( stderr, &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;
        fclose( PLibros );&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;
      fprintf( stderr, &amp;quot;Falta el nombre del autor de \&amp;quot;%s\&amp;quot;\n&amp;quot;,&lt;br /&gt;
               Biblioteca[Conteo].Titulo );&lt;br /&gt;
      fclose( PLibros );&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;
        fprintf( stderr, &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;
        fclose( PLibros );&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;
        fputs( &amp;quot;No se permiten valores negativos.&amp;quot;, stderr );&lt;br /&gt;
        fclose( PLibros );&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;
              fclose( PLibros );&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;
              fputs( &amp;quot;Se permiten solo 2 decimales después del punto.&amp;quot;, stderr );&lt;br /&gt;
              fclose( PLibros );&lt;br /&gt;
              exit(1);&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
          else&lt;br /&gt;
          {&lt;br /&gt;
            fputs( &amp;quot;Caracteres ilegales en su valor.&amp;quot;, stderr );&lt;br /&gt;
            fclose( PLibros );&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;
      fprintf( stderr, &amp;quot;Falta el valor de \&amp;quot;%s\&amp;quot;\n&amp;quot;, Biblioteca[Conteo].Titulo );&lt;br /&gt;
      fclose( PLibros );&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 sigiuente 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;\nAquí es la lista de sus 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,&lt;br /&gt;
                                              Biblioteca[Index].Valor );&lt;br /&gt;
    fwrite( &amp;amp;Biblioteca[ConteoDelArchivo], Tamano, Conteo - ConteoDelArchivo,&lt;br /&gt;
                                                                   PLibros );&lt;br /&gt;
  }&lt;br /&gt;
  else&lt;br /&gt;
    puts( &amp;quot;Lo siento pero no tengo libros nuevos para mostrar.&amp;quot; );&lt;br /&gt;
&lt;br /&gt;
  puts( &amp;quot;\n¡Adios!\n&amp;quot; );&lt;br /&gt;
  fclose( PLibros );&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]$ rm Libros.dat &lt;br /&gt;
rm: remove regular file `Libros.dat&amp;#039;? y&lt;br /&gt;
[rrc@llawyr CClase]$ gcc -Wall -o Prog122 Prog122.c&lt;br /&gt;
[rrc@llawyr CClase]$ ./Prog122&lt;br /&gt;
&lt;br /&gt;
Ingresa el nombre del libro: &lt;br /&gt;
Lo siento pero no tengo libros nuevos para mostrar.&lt;br /&gt;
&lt;br /&gt;
¡Adios!&lt;br /&gt;
&lt;br /&gt;
[rrc@llawyr CClase]$ ./Prog122&lt;br /&gt;
&lt;br /&gt;
Ingresa el nombre del libro: Libro Uno&lt;br /&gt;
Ingresa el nombre del autor: Autor uno&lt;br /&gt;
Ingresa el valor: Valor 1&lt;br /&gt;
Caracteres ilegales en su valor.&lt;br /&gt;
[rrc@llawyr CClase]$ ./Prog122&lt;br /&gt;
&lt;br /&gt;
Ingresa el nombre del libro: Libro Uno&lt;br /&gt;
Ingresa el nombre del autor: Autor Uno&lt;br /&gt;
Ingresa el valor: 13.55&lt;br /&gt;
Ingresa el siguiente titulo: (&amp;lt;Enter&amp;gt; para terminar): Libro Dos&lt;br /&gt;
Ingresa el nombre del autor: Autor 2&lt;br /&gt;
Ingresa el valor: 52.66&lt;br /&gt;
Ingresa el siguiente titulo: (&amp;lt;Enter&amp;gt; para terminar): &lt;br /&gt;
&lt;br /&gt;
Aquí esta la lista de sus libros:&lt;br /&gt;
	&amp;quot;Libro Uno&amp;quot; por &amp;quot;Autor Uno&amp;quot;: $13.55&lt;br /&gt;
	&amp;quot;Libro Dos&amp;quot; por &amp;quot;Autor 2&amp;quot;: $52.66&lt;br /&gt;
&lt;br /&gt;
¡Adios!&lt;br /&gt;
&lt;br /&gt;
[rrc@llawyr CClase]$ ./Prog122&lt;br /&gt;
Los contenidos de Libros.dat ahora:&lt;br /&gt;
	Libro Uno por Autor Uno: $13.55&lt;br /&gt;
	Libro Dos por Autor 2: $52.66&lt;br /&gt;
&lt;br /&gt;
Ingresa el nombre del libro: Libro Tres&lt;br /&gt;
Ingresa el nombre del autor: Autor Tres&lt;br /&gt;
Ingresa el valor: 62.88&lt;br /&gt;
Ingresa el siguiente titulo: (&amp;lt;Enter&amp;gt; para terminar): Libro Cuatro&lt;br /&gt;
Ingresa el nombre del autor: Autor Cuatro&lt;br /&gt;
Ingresa el valor: 62.44&lt;br /&gt;
Ingresa el siguiente titulo: (&amp;lt;Enter&amp;gt; para terminar): &lt;br /&gt;
&lt;br /&gt;
Aquí esta la lista de sus libros:&lt;br /&gt;
	&amp;quot;Libro Uno&amp;quot; por &amp;quot;Autor Uno&amp;quot;: $13.55&lt;br /&gt;
	&amp;quot;Libro Dos&amp;quot; por &amp;quot;Autor 2&amp;quot;: $52.66&lt;br /&gt;
	&amp;quot;Libro Tres&amp;quot; por &amp;quot;Autor Tres&amp;quot;: $62.88&lt;br /&gt;
	&amp;quot;Libro Cuatro&amp;quot; por &amp;quot;Autor Cuatro&amp;quot;: $62.44&lt;br /&gt;
&lt;br /&gt;
¡Adios!&lt;br /&gt;
&lt;br /&gt;
[rrc@llawyr CClase]$ ./Prog122&lt;br /&gt;
Los contenidos de Libros.dat ahora:&lt;br /&gt;
	Libro Uno por Autor Uno: $13.55&lt;br /&gt;
	Libro Dos por Autor 2: $52.66&lt;br /&gt;
	Libro Tres por Autor Tres: $62.88&lt;br /&gt;
	Libro Cuatro por Autor Cuatro: $62.44&lt;br /&gt;
&lt;br /&gt;
Ingresa el nombre del libro: &lt;br /&gt;
&lt;br /&gt;
Aquí esta la lista de sus libros:&lt;br /&gt;
	&amp;quot;Libro Uno&amp;quot; por &amp;quot;Autor Uno&amp;quot;: $13.55&lt;br /&gt;
	&amp;quot;Libro Dos&amp;quot; por &amp;quot;Autor 2&amp;quot;: $52.66&lt;br /&gt;
	&amp;quot;Libro Tres&amp;quot; por &amp;quot;Autor Tres&amp;quot;: $62.88&lt;br /&gt;
	&amp;quot;Libro Cuatro&amp;quot; por &amp;quot;Autor Cuatro&amp;quot;: $62.44&lt;br /&gt;
&lt;br /&gt;
¡Adios!&lt;br /&gt;
&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>
	<entry>
		<id>http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog121&amp;diff=5539</id>
		<title>Curso de Programación en C/Prog121</title>
		<link rel="alternate" type="text/html" href="http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog121&amp;diff=5539"/>
		<updated>2014-06-06T18:09:14Z</updated>

		<summary type="html">&lt;p&gt;Perseuz: /* Prog121 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
* [[:#Prog121 | Funciones que regresan structs]]&lt;br /&gt;
** [[:#Resultado | Resultado]]&lt;br /&gt;
** [[:#Explicación | Explicación]]&lt;br /&gt;
&lt;br /&gt;
== Prog121 ==&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 MAXNOMBRELEN 20&lt;br /&gt;
&lt;br /&gt;
struct NombreConteo&lt;br /&gt;
{&lt;br /&gt;
  char Nombre[MAXNOMBRELEN];&lt;br /&gt;
  char Apellido[MAXNOMBRELEN];&lt;br /&gt;
  int Letras;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct NombreConteo ObtenInfo( void );&lt;br /&gt;
struct NombreConteo mkInfo( struct NombreConteo );&lt;br /&gt;
void DesplegaInfo( const struct NombreConteo );&lt;br /&gt;
&lt;br /&gt;
int main( void )&lt;br /&gt;
{&lt;br /&gt;
  struct NombreConteo Persona;&lt;br /&gt;
&lt;br /&gt;
  Persona = ObtenInfo();&lt;br /&gt;
  Persona = mkInfo( Persona );&lt;br /&gt;
  DesplegaInfo( Persona );&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
struct NombreConteo ObtenInfo( void )&lt;br /&gt;
{&lt;br /&gt;
  struct NombreConteo temp;&lt;br /&gt;
&lt;br /&gt;
  printf( &amp;quot;Favor de ingresar su nombre: &amp;quot; );&lt;br /&gt;
  if( fgets( temp.Nombre, MAXNOMBRELEN - 2, stdin ) &amp;amp;&amp;amp;&lt;br /&gt;
             temp.Nombre[0] != &amp;#039;\n&amp;#039; )&lt;br /&gt;
  {&lt;br /&gt;
    if( *(temp.Nombre + strlen( temp.Nombre ) -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;, MAXNOMBRELEN - 2 );&lt;br /&gt;
      exit(1);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    *(temp.Nombre + strlen( temp.Nombre ) -1 ) = &amp;#039;\0&amp;#039;;&lt;br /&gt;
  }&lt;br /&gt;
  else&lt;br /&gt;
  {&lt;br /&gt;
    puts( &amp;quot;Falta su Nombre&amp;quot; );&lt;br /&gt;
    exit(1);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  printf( &amp;quot;Favor de ingresar su apellido paterno: &amp;quot; );&lt;br /&gt;
  if( fgets( temp.Apellido, MAXNOMBRELEN - 2, stdin ) &amp;amp;&amp;amp;&lt;br /&gt;
             temp.Apellido[0] != &amp;#039;\n&amp;#039; )&lt;br /&gt;
  {&lt;br /&gt;
    if( *(temp.Apellido + strlen( temp.Apellido ) -1 ) != &amp;#039;\n&amp;#039; )&lt;br /&gt;
    {&lt;br /&gt;
      printf( &amp;quot;El apellido paterno que entraste es demasiado largo.\n&amp;quot;&lt;br /&gt;
              &amp;quot;Solo %d chars MAX\n&amp;quot;, MAXNOMBRELEN - 2 );&lt;br /&gt;
      exit(1);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    *(temp.Apellido + strlen( temp.Apellido ) -1 ) = &amp;#039;\0&amp;#039;;&lt;br /&gt;
  }&lt;br /&gt;
  else&lt;br /&gt;
  {&lt;br /&gt;
    puts( &amp;quot;Falta su apellido paterno&amp;quot; );&lt;br /&gt;
    exit(1);&lt;br /&gt;
  }&lt;br /&gt;
  return temp;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
struct NombreConteo mkInfo( struct NombreConteo info )&lt;br /&gt;
{&lt;br /&gt;
  info.Letras = strlen( info.Nombre ) +&lt;br /&gt;
                 strlen( info.Apellido );&lt;br /&gt;
  return info;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void DesplegaInfo( const struct NombreConteo info )&lt;br /&gt;
{&lt;br /&gt;
  printf( &amp;quot;%s %s, tu nombre contiene %d Letras.\n&amp;quot;,&lt;br /&gt;
               info.Nombre, info.Apellido, info.Letras );&lt;br /&gt;
}&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 Prog121 Prog121.c&lt;br /&gt;
[rrc@llawyr CClase]$ ./Prog121&lt;br /&gt;
Favor de ingresar su nombre: &lt;br /&gt;
Falta su Nombre&lt;br /&gt;
[rrc@llawyr CClase]$ ./Prog121&lt;br /&gt;
Favor de ingresar su nombre: RichardConMuchasLetras&lt;br /&gt;
El Nombre que entraste es demasiado largo.&lt;br /&gt;
Solo 18 chars MAX&lt;br /&gt;
[rrc@llawyr CClase]$ ./Prog121&lt;br /&gt;
Favor de ingresar su nombre: Richard&lt;br /&gt;
Favor de ingresar su apellido paterno: Couture&lt;br /&gt;
Richard Couture, tu nombre contiene 14 Letras.&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>
	<entry>
		<id>http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog120&amp;diff=5532</id>
		<title>Curso de Programación en C/Prog120</title>
		<link rel="alternate" type="text/html" href="http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog120&amp;diff=5532"/>
		<updated>2014-06-06T16:51:12Z</updated>

		<summary type="html">&lt;p&gt;Perseuz: /* Prog120 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
* [[:#Prog120 | Pasando structs en funciones]]&lt;br /&gt;
** [[:#Resultado | Resultado]]&lt;br /&gt;
** [[:#Explicación | Explicación]]&lt;br /&gt;
&lt;br /&gt;
== Prog120 ==&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 MAXNOMBRELEN 20&lt;br /&gt;
&lt;br /&gt;
struct NombreConteo&lt;br /&gt;
{&lt;br /&gt;
  char Nombre[MAXNOMBRELEN];&lt;br /&gt;
  char Apellido[MAXNOMBRELEN];&lt;br /&gt;
  int Letras;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
void ObtenInfo( struct NombreConteo * );&lt;br /&gt;
void mkInfo( struct NombreConteo * );&lt;br /&gt;
void DesplegaInfo( const struct NombreConteo * );&lt;br /&gt;
&lt;br /&gt;
int main( void )&lt;br /&gt;
{&lt;br /&gt;
  struct NombreConteo Persona;&lt;br /&gt;
&lt;br /&gt;
  ObtenInfo( &amp;amp;Persona );&lt;br /&gt;
  mkInfo( &amp;amp;Persona );&lt;br /&gt;
  DesplegaInfo( &amp;amp;Persona );&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void ObtenInfo( struct NombreConteo * pst )&lt;br /&gt;
{&lt;br /&gt;
  printf( &amp;quot;Favor de ingresar su nombre: &amp;quot; );&lt;br /&gt;
  if( fgets( pst-&amp;gt;Nombre, MAXNOMBRELEN - 2, stdin ) &amp;amp;&amp;amp;&lt;br /&gt;
             pst-&amp;gt;Nombre[0] != &amp;#039;\n&amp;#039; )&lt;br /&gt;
  {&lt;br /&gt;
    if( *(pst-&amp;gt;Nombre + strlen( pst-&amp;gt;Nombre ) -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;, MAXNOMBRELEN - 2 );&lt;br /&gt;
      exit(1);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    *(pst-&amp;gt;Nombre + strlen( pst-&amp;gt;Nombre ) -1 ) = &amp;#039;\0&amp;#039;;&lt;br /&gt;
  }&lt;br /&gt;
  else&lt;br /&gt;
  {&lt;br /&gt;
    puts( &amp;quot;Falta su Nombre&amp;quot; );&lt;br /&gt;
    exit(1);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  printf( &amp;quot;Favor de ingresar su apellido paterno: &amp;quot; );&lt;br /&gt;
  if( fgets( pst-&amp;gt;Apellido, MAXNOMBRELEN - 2, stdin ) &amp;amp;&amp;amp;&lt;br /&gt;
             pst-&amp;gt;Apellido[0] != &amp;#039;\n&amp;#039; )&lt;br /&gt;
  {&lt;br /&gt;
    if( *(pst-&amp;gt;Apellido + strlen( pst-&amp;gt;Apellido ) -1 ) != &amp;#039;\n&amp;#039; )&lt;br /&gt;
    {&lt;br /&gt;
      printf( &amp;quot;El apellido paterno que entraste es demasiado largo.\n&amp;quot;&lt;br /&gt;
              &amp;quot;Solo %d chars MAX\n&amp;quot;, MAXNOMBRELEN - 2 );&lt;br /&gt;
      exit(1);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    *(pst-&amp;gt;Apellido + strlen( pst-&amp;gt; Apellido ) -1 ) = &amp;#039;\0&amp;#039;;&lt;br /&gt;
  }&lt;br /&gt;
  else&lt;br /&gt;
  {&lt;br /&gt;
    puts( &amp;quot;Falta su apellido paterno&amp;quot; );&lt;br /&gt;
    exit(1);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void mkInfo( struct NombreConteo * pst )&lt;br /&gt;
{&lt;br /&gt;
  pst-&amp;gt;Letras = strlen( pst-&amp;gt;Nombre ) +&lt;br /&gt;
                 strlen( pst-&amp;gt;Apellido );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void DesplegaInfo( const struct NombreConteo * pst )&lt;br /&gt;
{&lt;br /&gt;
  printf( &amp;quot;%s %s, tu nombre contiene %d Letras.\n&amp;quot;,&lt;br /&gt;
               pst-&amp;gt;Nombre, pst-&amp;gt;Apellido, pst-&amp;gt;Letras );&lt;br /&gt;
}&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 Prog120 Prog120.c&lt;br /&gt;
[rrc@llawyr CClase]$ ./Prog120&lt;br /&gt;
Favor de ingresar su nombre: &lt;br /&gt;
Falta su Nombre&lt;br /&gt;
[rrc@llawyr CClase]$ ./Prog120&lt;br /&gt;
Favor de ingresar su nombre: RichardConMuchasLetras&lt;br /&gt;
El Nombre que entraste es demasiado largo.&lt;br /&gt;
Solo 18 chars MAX&lt;br /&gt;
[rrc@llawyr CClase]$ ./Prog120&lt;br /&gt;
Favor de ingresar su nombre: Richard&lt;br /&gt;
Favor de ingresar su apellido paterno: Couture&lt;br /&gt;
Richard Couture, tu nombre contiene 14 Letras.&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>
	<entry>
		<id>http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog119&amp;diff=5522</id>
		<title>Curso de Programación en C/Prog119</title>
		<link rel="alternate" type="text/html" href="http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog119&amp;diff=5522"/>
		<updated>2014-06-05T22:33:37Z</updated>

		<summary type="html">&lt;p&gt;Perseuz: /* Prog119 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
* [[:#Prog119 | Pointers de struct]]&lt;br /&gt;
** [[:#Resultado | Resultado]]&lt;br /&gt;
** [[:#Explicación | Explicación]]&lt;br /&gt;
&lt;br /&gt;
== Prog119 ==&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;
&lt;br /&gt;
#define LARGO 20&lt;br /&gt;
&lt;br /&gt;
struct Nombres {&lt;br /&gt;
    char Nombre[LARGO];&lt;br /&gt;
    char Apellido[LARGO];&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct Personas {&lt;br /&gt;
    struct Nombres handle;&lt;br /&gt;
    char ComidaPreferida[LARGO];&lt;br /&gt;
    char Profesion[LARGO];&lt;br /&gt;
    float IngresosMensual;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
int main( void )&lt;br /&gt;
{&lt;br /&gt;
  struct Personas Companero[2] = &lt;br /&gt;
  {&lt;br /&gt;
    {&lt;br /&gt;
      { &amp;quot;Horacio&amp;quot;, &amp;quot;Villanueva&amp;quot; },&lt;br /&gt;
     &amp;quot;salmon&amp;quot;,&lt;br /&gt;
     &amp;quot;Gigolo&amp;quot;,&lt;br /&gt;
      58112.00&lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
    {&lt;br /&gt;
      {&amp;quot;Rupert&amp;quot;, &amp;quot;Delgado&amp;quot; },&lt;br /&gt;
     &amp;quot;menudo&amp;quot;,&lt;br /&gt;
     &amp;quot;Editor de Revistas&amp;quot;,&lt;br /&gt;
      32400.00&lt;br /&gt;
    }&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
  struct Personas * El;    /* here is a pointer to a structure */&lt;br /&gt;
  El = &amp;amp;Companero[0];    /* tell the pointer where to point  */&lt;br /&gt;
&lt;br /&gt;
  printf( &amp;quot;\npointer: %p\n&amp;quot;, El );&lt;br /&gt;
  printf( &amp;quot;Nombre: %s\n&amp;quot;, El-&amp;gt;handle.Nombre ); &lt;br /&gt;
  printf( &amp;quot;Apellido: %s\n&amp;quot;, El-&amp;gt;handle.Apellido ); &lt;br /&gt;
  printf( &amp;quot;Comida Preferida: %s\n&amp;quot;, El-&amp;gt;ComidaPreferida ); &lt;br /&gt;
  printf( &amp;quot;Profesión: %s\n&amp;quot;, El-&amp;gt;Profesion ); &lt;br /&gt;
  printf( &amp;quot;Ingreso Mensual: %.2f\n&amp;quot;, El-&amp;gt;IngresosMensual ); &lt;br /&gt;
&lt;br /&gt;
  El++;               /* point to the next structure      */&lt;br /&gt;
&lt;br /&gt;
  printf( &amp;quot;\npointer: %p\n&amp;quot;, El );&lt;br /&gt;
  printf( &amp;quot;Nombre: %s\n&amp;quot;, (*El).handle.Nombre ); &lt;br /&gt;
  printf( &amp;quot;Apellido: %s\n&amp;quot;, (*El).handle.Apellido ); &lt;br /&gt;
  printf( &amp;quot;Comida Preferida: %s\n&amp;quot;, (*El).ComidaPreferida ); &lt;br /&gt;
  printf( &amp;quot;Profesión: %s\n&amp;quot;, (*El).Profesion ); &lt;br /&gt;
  printf( &amp;quot;Ingreso Mensual: %.2f\n\n&amp;quot;, (*El).IngresosMensual ); &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;
pointer: 0x7ffffaec23a0&lt;br /&gt;
Nombre: Horacio&lt;br /&gt;
Apellido: Villanueva&lt;br /&gt;
Comida Preferida: salmon&lt;br /&gt;
Profesión: Gigolo&lt;br /&gt;
Ingreso Mensual: 58112.00&lt;br /&gt;
&lt;br /&gt;
pointer: 0x7ffffaec23f4&lt;br /&gt;
Nombre: Rupert&lt;br /&gt;
Apellido: Delgado&lt;br /&gt;
Comida Preferida: menudo&lt;br /&gt;
Profesión: Editor de Revistas&lt;br /&gt;
Ingreso Mensual: 32400.00&lt;br /&gt;
&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>
	<entry>
		<id>http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog118&amp;diff=5520</id>
		<title>Curso de Programación en C/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"/>
		<updated>2014-06-04T22:32:50Z</updated>

		<summary type="html">&lt;p&gt;Perseuz: /* Prog118 */&lt;/p&gt;
&lt;hr /&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>
	<entry>
		<id>http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog117&amp;diff=5518</id>
		<title>Curso de Programación en C/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"/>
		<updated>2014-06-04T15:13:29Z</updated>

		<summary type="html">&lt;p&gt;Perseuz: /* Prog117 */&lt;/p&gt;
&lt;hr /&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>
	<entry>
		<id>http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog115&amp;diff=5515</id>
		<title>Curso de Programación en C/Prog115</title>
		<link rel="alternate" type="text/html" href="http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog115&amp;diff=5515"/>
		<updated>2014-06-04T03:16:40Z</updated>

		<summary type="html">&lt;p&gt;Perseuz: /* Prog115 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
* [[:#Prog115 | fopen con &amp;quot;a&amp;quot;, setvbuf() y ferror() ]]&lt;br /&gt;
** [[:#Resultado | Resultado]]&lt;br /&gt;
** [[:#Explicación | Explicación]]&lt;br /&gt;
&lt;br /&gt;
== Prog115 ==&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 BUFTAMANO 1024&lt;br /&gt;
#define STROZO 81&lt;br /&gt;
&lt;br /&gt;
void append( FILE *Fuente, FILE *dest );&lt;br /&gt;
&lt;br /&gt;
int main( void )&lt;br /&gt;
{&lt;br /&gt;
  FILE *ADest,&lt;br /&gt;
       *AFuente;&lt;br /&gt;
&lt;br /&gt;
  int  Archivos = 0;&lt;br /&gt;
&lt;br /&gt;
  char ArchivoDestino[STROZO],  // Nombre de archivo de fuente&lt;br /&gt;
       ArchivoFuente[STROZO];  // Nombre de archivo de destino&lt;br /&gt;
&lt;br /&gt;
  printf( &amp;quot;Ingresa el nombre del archivo de destino: &amp;quot; );&lt;br /&gt;
  fgets( ArchivoDestino, STROZO - 2, stdin );&lt;br /&gt;
&lt;br /&gt;
  if( *(ArchivoDestino + strlen( ArchivoDestino ) -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;, STROZO - 2 );&lt;br /&gt;
    exit(1);&lt;br /&gt;
  }&lt;br /&gt;
  else&lt;br /&gt;
    *(ArchivoDestino + strlen( ArchivoDestino ) -1 ) = &amp;#039;\0&amp;#039;; &lt;br /&gt;
&lt;br /&gt;
  if( ( ADest = fopen( ArchivoDestino, &amp;quot;a&amp;quot; ) ) == NULL )&lt;br /&gt;
  {&lt;br /&gt;
    fprintf( stderr, &amp;quot;No puedo abrir %s\n&amp;quot;, ArchivoDestino );&lt;br /&gt;
    exit( 2 );&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  if( setvbuf( ADest, NULL, _IOFBF, BUFTAMANO ) != 0 )&lt;br /&gt;
  {&lt;br /&gt;
    fputs( &amp;quot;No puedo crear el buffer de salida\n&amp;quot;, stderr );&lt;br /&gt;
    exit( 3 );&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  puts( &amp;quot;Ingresa el nombre del primer archivo de fuente (Línea vacio para terminar):&amp;quot; );&lt;br /&gt;
  while( fgets( ArchivoFuente, STROZO - 2, stdin ) &amp;amp;&amp;amp; ArchivoFuente[0] != &amp;#039;\n&amp;#039; )&lt;br /&gt;
  {&lt;br /&gt;
    if( *(ArchivoFuente + strlen( ArchivoFuente ) -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;, STROZO - 2 );&lt;br /&gt;
      exit(1);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
      *(ArchivoFuente + strlen( ArchivoFuente ) -1 ) = &amp;#039;\0&amp;#039;; &lt;br /&gt;
&lt;br /&gt;
    if( strcmp( ArchivoFuente, ArchivoDestino ) == 0 )&lt;br /&gt;
      fputs( &amp;quot;No puedo usar el mismo archivo por fuente y destino\n&amp;quot;, stderr );&lt;br /&gt;
    else if( ( AFuente = fopen( ArchivoFuente, &amp;quot;r&amp;quot; ) ) == NULL )&lt;br /&gt;
      fprintf( stderr, &amp;quot;No puedo abrir %s\n&amp;quot;, ArchivoFuente );&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
      if( setvbuf( AFuente, NULL, _IOFBF, BUFTAMANO ) != 0 )&lt;br /&gt;
      {&lt;br /&gt;
        fputs( &amp;quot;No puedo crear el buffer de ingreso\n&amp;quot;, stderr );&lt;br /&gt;
        continue;&lt;br /&gt;
      }&lt;br /&gt;
      append( AFuente, ADest );&lt;br /&gt;
      if( ferror( AFuente ) != 0 )&lt;br /&gt;
        fprintf( stderr, &amp;quot;Error en leer el archivo %s.\n&amp;quot;, ArchivoFuente );&lt;br /&gt;
      if( ferror( ADest ) != 0 )&lt;br /&gt;
        fprintf( stderr, &amp;quot;Error in escribir el archivo file %s.\n&amp;quot;, ArchivoDestino );&lt;br /&gt;
      fclose( AFuente );&lt;br /&gt;
      Archivos++;&lt;br /&gt;
      printf( &amp;quot;Archivo %s agregado.\n&amp;quot;, ArchivoFuente );&lt;br /&gt;
      puts( &amp;quot;Siguiente archivo (Línea vacio para terminar):&amp;quot; );&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  printf( &amp;quot;Listo. %d archivos agregados.\n&amp;quot;, Archivos );&lt;br /&gt;
  fclose( ADest );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void append( FILE *Fuente, FILE *dest )&lt;br /&gt;
{&lt;br /&gt;
  size_t bytes;&lt;br /&gt;
  static char temp[BUFTAMANO]; // allocate once&lt;br /&gt;
  while( ( bytes = fread( temp, sizeof( char ), BUFTAMANO, Fuente ) ) &amp;gt; 0 )&lt;br /&gt;
    fwrite( temp, sizeof (char), bytes, dest );&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 Prog115 Prog115.c&lt;br /&gt;
[rrc@llawyr CClase]$ ./Prog115&lt;br /&gt;
Ingresa el nombre del archivo de destino: Dest&lt;br /&gt;
Ingresa el nombre del primer archivo de fuente (Línea vacio a terminar):&lt;br /&gt;
Prog1.c&lt;br /&gt;
Archivo Prog1.c agregado.&lt;br /&gt;
Siguiente archivo (Línea vacio para terminar):&lt;br /&gt;
Prog2.c&lt;br /&gt;
Archivo Prog2.c agregado.&lt;br /&gt;
Siguiente archivo (Línea vacio para terminar):&lt;br /&gt;
Prog3.c&lt;br /&gt;
Archivo Prog3.c agregado.&lt;br /&gt;
Siguiente archivo (Línea vacio para terminar):&lt;br /&gt;
&lt;br /&gt;
Listo. 3 archivos agregados.&lt;br /&gt;
[rrc@llawyr CClase]$ cat Dest&lt;br /&gt;
/*  Prog4.c -- Asignación de resultados aritméticos */&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
     &lt;br /&gt;
int main( void )&lt;br /&gt;
{&lt;br /&gt;
  int n  = 5,&lt;br /&gt;
      n2 = n * n,&lt;br /&gt;
      n3 = n2 * n; /* decleración y asignación de resultado de multiplicación */&lt;br /&gt;
&lt;br /&gt;
  printf( &amp;quot;n = %d, n cuadrado = %d, n cubo = %d\n&amp;quot;, n, n2, n3 );&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
/* Prog5.c  -- floats y scanf()                 */&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
    float peso; &lt;br /&gt;
&lt;br /&gt;
    printf(&amp;quot;¿Vale usted su peso en rhodium?\n&amp;quot;);&lt;br /&gt;
    printf(&amp;quot;Vamos a ver.\n&amp;quot;);&lt;br /&gt;
    printf(&amp;quot;Ingrese su peso en libras: &amp;quot;);&lt;br /&gt;
&lt;br /&gt;
/* Obtener peso del usuario                         */&lt;br /&gt;
    scanf(&amp;quot;%f&amp;quot;, &amp;amp;peso);&lt;br /&gt;
&lt;br /&gt;
/* Si rhodium vale $770 el once                     */&lt;br /&gt;
/* 14.5833 para convertir pounds avd. a ounces troy */&lt;br /&gt;
&lt;br /&gt;
    printf(&amp;quot;Su peso en rhodium vale $%.2f.\n&amp;quot;, (770.0 * peso * 14.5833) );&lt;br /&gt;
    printf(&amp;quot;Si el valor de rhodium baja,\n&amp;quot;);&lt;br /&gt;
    printf(&amp;quot;come más a mantener su valor.\n&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Prog1.c&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main(void)               /* Un programa simple               */&lt;br /&gt;
{&lt;br /&gt;
   int num;                  /* definir una variable llamada num */&lt;br /&gt;
   num = 1;                  /* asignar una valor a num          */&lt;br /&gt;
&lt;br /&gt;
   printf(&amp;quot;Soy una computadora &amp;quot;); /* use the printf() function  */&lt;br /&gt;
   printf(&amp;quot;simple.\n&amp;quot;);&lt;br /&gt;
   printf(&amp;quot;Mi número favorito es %d porque el es el primer.\n&amp;quot;, num);&lt;br /&gt;
   return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Prog2.c */&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main (void)&lt;br /&gt;
{&lt;br /&gt;
  int fathoms = 2,&lt;br /&gt;
      feet    = 6 * fathoms;&lt;br /&gt;
&lt;br /&gt;
  printf(&amp;quot;Son %d pies en %d fathoms!\n&amp;quot;, feet, fathoms);&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Prog3.c&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void macero( void );  /* Prototipo de la función macero() */&lt;br /&gt;
      &lt;br /&gt;
int main(void)&lt;br /&gt;
{ &lt;br /&gt;
   printf( &amp;quot;Voy a convocar el macero.\n&amp;quot; );&lt;br /&gt;
   macero();&lt;br /&gt;
   printf( &amp;quot;Si. Me traen algunos DVDs grabables y té.\n&amp;quot; );&lt;br /&gt;
   return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void macero(void)            /* Definición de la función macero() */&lt;br /&gt;
{&lt;br /&gt;
   printf( &amp;quot;Me llamaste, señor?\n&amp;quot; );&lt;br /&gt;
} &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>
	<entry>
		<id>http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog114&amp;diff=5513</id>
		<title>Curso de Programación en C/Prog114</title>
		<link rel="alternate" type="text/html" href="http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog114&amp;diff=5513"/>
		<updated>2014-06-03T20:16:56Z</updated>

		<summary type="html">&lt;p&gt;Perseuz: /* Prog114 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
* [[:#Prog114 | fseek(), ftell() y fopen con &amp;quot;rb&amp;quot; ]]&lt;br /&gt;
** [[:#Resultado | Resultado]]&lt;br /&gt;
** [[:#Explicación | Explicación]]&lt;br /&gt;
&lt;br /&gt;
== Prog114 ==&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 CNTL_Z &amp;#039;\032&amp;#039;   /* eof marker in DOS text files */&lt;br /&gt;
#define SLEN 50&lt;br /&gt;
&lt;br /&gt;
int main( void )&lt;br /&gt;
{&lt;br /&gt;
  char file[SLEN],&lt;br /&gt;
       ch;&lt;br /&gt;
&lt;br /&gt;
  FILE *fp;&lt;br /&gt;
&lt;br /&gt;
  long count,&lt;br /&gt;
       last;&lt;br /&gt;
&lt;br /&gt;
  printf( &amp;quot;Escribe el nombre del archivo a usar: &amp;quot;);&lt;br /&gt;
  fgets( file, SLEN - 2, stdin );&lt;br /&gt;
&lt;br /&gt;
  if( *(file + strlen( file ) -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;, SLEN - 2 );&lt;br /&gt;
    exit(1);&lt;br /&gt;
  }&lt;br /&gt;
  else&lt;br /&gt;
    *(file + strlen( file ) -1 ) = &amp;#039;\0&amp;#039;; &lt;br /&gt;
  &lt;br /&gt;
  if( ( fp = fopen( file, &amp;quot;rb&amp;quot; ) ) == NULL )&lt;br /&gt;
  {&lt;br /&gt;
    printf( &amp;quot;No puedo abrir el archivo %s\n&amp;quot;, file );&lt;br /&gt;
    exit( 1 );&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  fseek( fp, 0L, SEEK_END );&lt;br /&gt;
  last = ftell( fp );&lt;br /&gt;
&lt;br /&gt;
  for( count = 1L; count &amp;lt;= last; count++ )&lt;br /&gt;
  {&lt;br /&gt;
    fseek( fp, -count, SEEK_END );  /* Leer en reversa SEEK_CUR SEEK_SET */&lt;br /&gt;
    ch = getc( fp );&lt;br /&gt;
    if( ch != CNTL_Z &amp;amp;&amp;amp; ch != &amp;#039;\r&amp;#039; )&lt;br /&gt;
      putchar( ch );&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  putchar( &amp;#039;\n&amp;#039; );&lt;br /&gt;
  fclose( fp );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&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 Prog114 Prog114.c&lt;br /&gt;
[rrc@llawyr CClase]$ ./Prog114&lt;br /&gt;
Escribe el nombre del archivo a usar: MiArchivo &lt;br /&gt;
No puedo abrir el archivo MiArchivo&lt;br /&gt;
[rrc@llawyr CClase]$ ./Prog114&lt;br /&gt;
Escribe el nombre del archivo a usar: Prog1.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
;0 nruter   &lt;br /&gt;
;)mun ,&amp;quot;n\.remirp le se le euqrop d% se otirovaf orem��n iM&amp;quot;(ftnirp   &lt;br /&gt;
;)&amp;quot;n\.elpmis&amp;quot;(ftnirp   &lt;br /&gt;
/*  noitcnuf )(ftnirp eht esu */ ;)&amp;quot; arodatupmoc anu yoS&amp;quot;(ftnirp   &lt;br /&gt;
&lt;br /&gt;
/*          mun a rolav anu rangisa */                  ;1 = mun   &lt;br /&gt;
/* mun adamall elbairav anu rinifed */                  ;mun tni   &lt;br /&gt;
{&lt;br /&gt;
/*               elpmis amargorp nU */               )diov(niam tni&lt;br /&gt;
&lt;br /&gt;
&amp;gt;h.oidts&amp;lt; edulcni#&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>
	<entry>
		<id>http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog113&amp;diff=5512</id>
		<title>Curso de Programación en C/Prog113</title>
		<link rel="alternate" type="text/html" href="http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog113&amp;diff=5512"/>
		<updated>2014-06-03T16:34:33Z</updated>

		<summary type="html">&lt;p&gt;Perseuz: /* Prog113 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
* [[:#Prog113 | fgets() y fputs()]]&lt;br /&gt;
** [[:#Resultado | Resultado]]&lt;br /&gt;
** [[:#Explicación | Explicación]]&lt;br /&gt;
&lt;br /&gt;
== Prog113 ==&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;
&lt;br /&gt;
#define MAXLINEA 20&lt;br /&gt;
&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
  char Linea[MAXLINEA];&lt;br /&gt;
&lt;br /&gt;
  while( fgets( Linea, MAXLINEA - 1, stdin ) != NULL &amp;amp;&amp;amp; Linea[0] != &amp;#039;\n&amp;#039; )&lt;br /&gt;
    fputs( Linea, stdout );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&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 Prog113 Prog113.c&lt;br /&gt;
[rrc@llawyr CClase]$ ./Prog113&lt;br /&gt;
Aquí podemos ver que la combinación de fputs() y fgets() sirven bien.&lt;br /&gt;
Aquí podemos ver que la combinación de fputs() y fgets() sirven bien.&lt;br /&gt;
El fgets() guarda el retorno de carro y el fputs() no agrega un returno de carro al fin.&lt;br /&gt;
El fgets() guarda el retorno de carro y el fputs() no agrega un returno de carro al fin.&lt;br /&gt;
&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>
	<entry>
		<id>http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog112&amp;diff=5511</id>
		<title>Curso de Programación en C/Prog112</title>
		<link rel="alternate" type="text/html" href="http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog112&amp;diff=5511"/>
		<updated>2014-06-03T16:18:25Z</updated>

		<summary type="html">&lt;p&gt;Perseuz: /* Prog112 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
* [[:#Prog112 | fopen() con a+ y rewind()]]&lt;br /&gt;
** [[:#Resultado | Resultado]]&lt;br /&gt;
** [[:#Explicación | Explicación]]&lt;br /&gt;
&lt;br /&gt;
== Prog112 ==&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;
&lt;br /&gt;
#define MAX 40&lt;br /&gt;
&lt;br /&gt;
int main( void )&lt;br /&gt;
{&lt;br /&gt;
  FILE *fp;&lt;br /&gt;
&lt;br /&gt;
  char Palabras[MAX];&lt;br /&gt;
&lt;br /&gt;
  if( ( fp = fopen( &amp;quot;Palabras&amp;quot;, &amp;quot;a+&amp;quot; ) ) == NULL )&lt;br /&gt;
  {&lt;br /&gt;
    fprintf( stderr, &amp;quot;No puedo abrir \&amp;quot;Palabras\&amp;quot; archivo.\n&amp;quot;);&lt;br /&gt;
    exit(1);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  puts( &amp;quot;Ingresa las palabras que quieres agregar en el archivo.&amp;quot; );&lt;br /&gt;
  puts( &amp;quot;Retorno de carrito al inicio de la línea para terminar&amp;quot; );&lt;br /&gt;
&lt;br /&gt;
  while( gets( Palabras ) != NULL  &amp;amp;&amp;amp; Palabras[0] != &amp;#039;\0&amp;#039; )&lt;br /&gt;
    fprintf( fp, &amp;quot;%s &amp;quot;, Palabras );&lt;br /&gt;
&lt;br /&gt;
  puts( &amp;quot;Contenidos del archivo:&amp;quot; );&lt;br /&gt;
  rewind( fp );&lt;br /&gt;
&lt;br /&gt;
  while( fscanf( fp, &amp;quot;%s&amp;quot;, Palabras ) == 1 )&lt;br /&gt;
    puts( Palabras );&lt;br /&gt;
&lt;br /&gt;
  if( fclose( fp ) != 0 )&lt;br /&gt;
  {&lt;br /&gt;
    fprintf( stderr, &amp;quot;Error: No puedo cerrar el archivo\n&amp;quot; );&lt;br /&gt;
    exit(1);&lt;br /&gt;
  }&lt;br /&gt;
  return 0;&lt;br /&gt;
}&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 Prog112 Prog112.c&lt;br /&gt;
[rrc@llawyr CClase]$ ./Prog112&lt;br /&gt;
Ingresa las palabras que quieres agregar en el archivo.&lt;br /&gt;
Retorno de carrito al inicio de la línea para terminar&lt;br /&gt;
Son mis palabras&lt;br /&gt;
&lt;br /&gt;
Contenidos del archivo:&lt;br /&gt;
Son&lt;br /&gt;
mis&lt;br /&gt;
palabras&lt;br /&gt;
[rrc@llawyr CClase]$ ./Prog112&lt;br /&gt;
Ingreso las palabras que quieres agregar en el archivo.&lt;br /&gt;
Retorno de carrito al inicio de la línea a terminar&lt;br /&gt;
Son más de mis palabras&lt;br /&gt;
&lt;br /&gt;
Contenidos del archivo:&lt;br /&gt;
Son&lt;br /&gt;
mis&lt;br /&gt;
palabras&lt;br /&gt;
Son&lt;br /&gt;
más&lt;br /&gt;
de&lt;br /&gt;
mis&lt;br /&gt;
palabras&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>
	<entry>
		<id>http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog82&amp;diff=5508</id>
		<title>Curso de Programación en C/Prog82</title>
		<link rel="alternate" type="text/html" href="http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog82&amp;diff=5508"/>
		<updated>2014-06-03T15:10:31Z</updated>

		<summary type="html">&lt;p&gt;Perseuz: /* Explicación */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
* [[:#Prog82 | fgets()]]&lt;br /&gt;
** [[:#Resultado | Resultado]]&lt;br /&gt;
** [[:#Explicación | Explicación]]&lt;br /&gt;
&lt;br /&gt;
== Prog82 ==&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;
#includ#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define MAX 5&lt;br /&gt;
&lt;br /&gt;
int main( void )&lt;br /&gt;
{&lt;br /&gt;
  char   nombre[MAX];&lt;br /&gt;
  char * ptr;&lt;br /&gt;
&lt;br /&gt;
  printf( &amp;quot;Hola, cómo se llama usted?\n&amp;quot; );&lt;br /&gt;
&lt;br /&gt;
  ptr = fgets( nombre, MAX, stdin );&lt;br /&gt;
  printf( &amp;quot;%s? Ah! %s!\n&amp;quot;, nombre, ptr );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Resultado ===&lt;br /&gt;
  &lt;br /&gt;
 [rrc@llawyr CClase]$ gcc -Wall -o Prog82 Prog82.c&lt;br /&gt;
 [rrc@llawyr CClase]$ ./Prog82&lt;br /&gt;
 Hola, cómo se llama usted?&lt;br /&gt;
 Richard&lt;br /&gt;
 Richard&lt;br /&gt;
 ? Ah! Richard&lt;br /&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;br /&gt;
Ver una explicación detallada de la función en https://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C/Manejo_de_archivos#fgets&lt;/div&gt;</summary>
		<author><name>Perseuz</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Mode_Strings_De_fopen()&amp;diff=5507</id>
		<title>Curso de Programación en C/Mode Strings De fopen()</title>
		<link rel="alternate" type="text/html" href="http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Mode_Strings_De_fopen()&amp;diff=5507"/>
		<updated>2014-06-02T21:45:25Z</updated>

		<summary type="html">&lt;p&gt;Perseuz: /* Mode Strings De fopen() */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
* [[:#Mode Strings De fopen() | Mode Strings De fopen()]]&lt;br /&gt;
** [[:#Explicación | Explicación]]&lt;br /&gt;
&lt;br /&gt;
== Mode Strings De fopen() ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;12&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;String&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Explicación&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr style=text-align:center;&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;quot;r&amp;quot;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Abrir archivo de texto para leer&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr style=text-align:center;&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;quot;w&amp;quot;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Abrir un archivo de texto para escribir.&amp;lt;br /&amp;gt;Si existe el archivo se trunca.&amp;lt;br /&amp;gt;Si el archivo no existe, se crea.&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr style=text-align:center;&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;quot;a&amp;quot;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Abrir un archivo de texto para escribir al final del archivo.&amp;lt;br /&amp;gt;Si el archivo no existe, se crea.&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr style=text-align:center;&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;quot;r+&amp;quot;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Abrir un archivo de texto para leer y para escribir.&amp;lt;br /&amp;gt;No se borran los contenidos del archivo si existe.&amp;lt;br /&amp;gt;Si el archivo no existe, se crea.&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr style=text-align:center;&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;quot;w+&amp;quot;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Abrir un archivo de texto para leer y para escribir.&amp;lt;br /&amp;gt;Se borran todos los contenidos del archivo si existe.&amp;lt;br /&amp;gt;Si el archivo no existe, se crea.&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr style=text-align:center;&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;quot;a+&amp;quot;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Como &amp;quot;r+&amp;quot; pero escribir se permite solo al final del archivo&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr style=text-align:center;&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;quot;rb&amp;quot;, &amp;quot;wb&amp;quot;, &amp;quot;ab&amp;quot;&amp;lt;br /&amp;gt;&amp;quot;ab+&amp;quot;, &amp;quot;a+b&amp;quot;, &amp;quot;wb+&amp;quot;&amp;lt;br /&amp;gt;&amp;quot;w+b&amp;quot;, &amp;quot;ab+&amp;quot;, &amp;quot;a+b&amp;quot;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Como los anteriores pero en modo binario&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&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>
	<entry>
		<id>http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog109&amp;diff=5506</id>
		<title>Curso de Programación en C/Prog109</title>
		<link rel="alternate" type="text/html" href="http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog109&amp;diff=5506"/>
		<updated>2014-06-02T19:33:17Z</updated>

		<summary type="html">&lt;p&gt;Perseuz: /* Prog109 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
* [[:#Prog109 | malloc(), free(), exit() &amp;amp; strtod()]]&lt;br /&gt;
** [[:#Resultado | Resultado]]&lt;br /&gt;
** [[:#Explicación | Explicación]]&lt;br /&gt;
&lt;br /&gt;
== Prog109 ==&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; /* for malloc(), free() */&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main( void )&lt;br /&gt;
{&lt;br /&gt;
  double * ptd;&lt;br /&gt;
&lt;br /&gt;
  char NumSTR[10];&lt;br /&gt;
&lt;br /&gt;
  char * endptr;&lt;br /&gt;
&lt;br /&gt;
  int i = 0,&lt;br /&gt;
      Max,&lt;br /&gt;
      NumCharsLeidos,&lt;br /&gt;
      NumEntradas,&lt;br /&gt;
      NumPuntos,&lt;br /&gt;
      NumValidosChars,&lt;br /&gt;
      Numero;&lt;br /&gt;
&lt;br /&gt;
  printf( &amp;quot;¿Cuál es el máximo número de dobles que vamos a guardar? &amp;quot; );&lt;br /&gt;
&lt;br /&gt;
  fgets( NumSTR, 4, stdin );&lt;br /&gt;
  NumValidosChars = 0;&lt;br /&gt;
  if( ( NumCharsLeidos = strlen( NumSTR ) )  &amp;gt; 4 )&lt;br /&gt;
  {&lt;br /&gt;
    puts( &amp;quot;Entrada ¡INVALIDO!\nDebe ser menor que 99&amp;quot; );&lt;br /&gt;
    exit( 1 );&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  if( NumSTR[0] == &amp;#039;0&amp;#039; )&lt;br /&gt;
  {&lt;br /&gt;
    puts( &amp;quot;Debemos guardar un mínimo de 1 double&amp;quot; );&lt;br /&gt;
    exit( 1 );&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  if( *(NumSTR + NumCharsLeidos - 1) != &amp;#039;\n&amp;#039; )&lt;br /&gt;
  {&lt;br /&gt;
    puts( &amp;quot;Entrada ¡INVALIDO!\nDebe ser menor que 99&amp;quot; );&lt;br /&gt;
    exit( 1 );&lt;br /&gt;
  }&lt;br /&gt;
  else&lt;br /&gt;
    *(NumSTR + NumCharsLeidos - 1) = &amp;#039;\0&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
  for( i = 0; i &amp;lt; NumCharsLeidos -1; i++ )&lt;br /&gt;
    if( ( *(NumSTR + i ) &amp;gt;= &amp;#039;0&amp;#039; &amp;amp;&amp;amp; *(NumSTR + i ) &amp;lt;= &amp;#039;9&amp;#039; ) )&lt;br /&gt;
      NumValidosChars++;&lt;br /&gt;
&lt;br /&gt;
  if( NumCharsLeidos == 1 || NumValidosChars != NumCharsLeidos - 1 )&lt;br /&gt;
  {&lt;br /&gt;
    puts( &amp;quot;Entrada ¡INVALIDO!&amp;quot; );&lt;br /&gt;
    exit( 1 );&lt;br /&gt;
  }&lt;br /&gt;
  Max = atoi( NumSTR );&lt;br /&gt;
&lt;br /&gt;
  ptd = (double *)malloc( Max * sizeof( double ) );&lt;br /&gt;
&lt;br /&gt;
  if( ptd == NULL )&lt;br /&gt;
  {&lt;br /&gt;
    puts( &amp;quot;Falló la asignación de memoria. Adiós.&amp;quot; );&lt;br /&gt;
    exit( EXIT_FAILURE );&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  puts( &amp;quot;Ingresa los dobles (q para terminar):&amp;quot; );&lt;br /&gt;
  &lt;br /&gt;
  NumEntradas = 0;&lt;br /&gt;
&lt;br /&gt;
  while( ( NumEntradas &amp;lt; Max ) &amp;amp;&amp;amp; fgets( NumSTR, 8, stdin ) )&lt;br /&gt;
  {&lt;br /&gt;
    NumValidosChars = 0;&lt;br /&gt;
    NumCharsLeidos = strlen( NumSTR );&lt;br /&gt;
&lt;br /&gt;
    if( NumSTR[0] == &amp;#039;q&amp;#039; &amp;amp;&amp;amp; NumCharsLeidos == 2 )&lt;br /&gt;
      break;&lt;br /&gt;
&lt;br /&gt;
    if( *(NumSTR + NumCharsLeidos - 1) != &amp;#039;\n&amp;#039; )&lt;br /&gt;
    {&lt;br /&gt;
      puts( &amp;quot;Entrada ¡INVALIDO! (Tan Grande - No más que 6 chars)&amp;quot; );&lt;br /&gt;
      while( getchar() != &amp;#039;\n&amp;#039; );&lt;br /&gt;
      puts( &amp;quot;Ingresa los dobles:&amp;quot; );&lt;br /&gt;
      continue;&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
      *(NumSTR + NumCharsLeidos - 1) = &amp;#039;\0&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
    NumPuntos = 0;&lt;br /&gt;
    &lt;br /&gt;
    for( i = 0; i &amp;lt; NumCharsLeidos -1; i++ )&lt;br /&gt;
      if( ( *(NumSTR + i ) &amp;gt;= &amp;#039;0&amp;#039; &amp;amp;&amp;amp; *(NumSTR + i ) &amp;lt;= &amp;#039;9&amp;#039; ) ||&lt;br /&gt;
          (  *(NumSTR) == &amp;#039;-&amp;#039; &amp;amp;&amp;amp; i == &amp;#039;0&amp;#039; ) ||&lt;br /&gt;
          ( *(NumSTR + i ) == &amp;#039;.&amp;#039; &amp;amp;&amp;amp; ++NumPuntos &amp;lt; 2 ) )&lt;br /&gt;
        NumValidosChars++;&lt;br /&gt;
&lt;br /&gt;
    if( NumCharsLeidos == 1 || NumValidosChars != NumCharsLeidos - 1 )&lt;br /&gt;
    {&lt;br /&gt;
      puts( &amp;quot;Entrada ¡INVALIDO!&amp;quot; );&lt;br /&gt;
      puts( &amp;quot;Ingresa los dobles:&amp;quot; );&lt;br /&gt;
      continue;&lt;br /&gt;
    }&lt;br /&gt;
    ptd[NumEntradas++] = strtod( NumSTR, &amp;amp;endptr );&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  printf( &amp;quot;\nAquí son sus %d dobles:\n&amp;quot;, Numero = NumEntradas );&lt;br /&gt;
&lt;br /&gt;
  for( i = 0; i &amp;lt; Numero; i++ )&lt;br /&gt;
  {&lt;br /&gt;
    printf(&amp;quot;%7.2f &amp;quot;, ptd[i]);&lt;br /&gt;
&lt;br /&gt;
    if( i % 7 == 6 )&lt;br /&gt;
      putchar( &amp;#039;\n&amp;#039; );&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  if( i % 7 != 0 )&lt;br /&gt;
    putchar( &amp;#039;\n&amp;#039; );&lt;br /&gt;
&lt;br /&gt;
  puts(&amp;quot;¡Listo!&amp;quot;);&lt;br /&gt;
  free(ptd);&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&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 Prog109 Prog109.c &lt;br /&gt;
[rrc@llawyr CClase]$ ./Prog109&lt;br /&gt;
¿Cuál es el máximo número de dobles que vamos a guardar? 25&lt;br /&gt;
Ingresa los dobles (q para terminar):&lt;br /&gt;
q&lt;br /&gt;
&lt;br /&gt;
Aquí son sus 0 dobles:&lt;br /&gt;
¡Listo!&lt;br /&gt;
[rrc@llawyr CClase]$ ./Prog109&lt;br /&gt;
¿Cuál es el máximo número de dobles que vamos a guardar? 25&lt;br /&gt;
Ingresa los dobles (q para terminar):&lt;br /&gt;
23&lt;br /&gt;
-23&lt;br /&gt;
23.456&lt;br /&gt;
-23.456&lt;br /&gt;
Entrada ¡INVALIDO! (Tan Grande - No más que 6 chars)&lt;br /&gt;
Ingresa los dobles:&lt;br /&gt;
-23.45&lt;br /&gt;
123456&lt;br /&gt;
-123456&lt;br /&gt;
Entrada ¡INVALIDO! (Tan Grande - No más que 6 chars)&lt;br /&gt;
Ingresa los dobles:&lt;br /&gt;
-12345&lt;br /&gt;
&lt;br /&gt;
Entrada ¡INVALIDO!&lt;br /&gt;
Ingresa los dobles:&lt;br /&gt;
&lt;br /&gt;
Entrada ¡INVALIDO!&lt;br /&gt;
Ingresa los dobles:&lt;br /&gt;
quit&lt;br /&gt;
Entrada ¡INVALIDO!&lt;br /&gt;
Ingresa los dobles:&lt;br /&gt;
8765.2&lt;br /&gt;
45.67&lt;br /&gt;
-53.4.4&lt;br /&gt;
Entrada ¡INVALIDO! (Tan Grande - No más que 6 chars)&lt;br /&gt;
Ingresa los dobles:&lt;br /&gt;
5.3.2&lt;br /&gt;
Entrada ¡INVALIDO!&lt;br /&gt;
Ingresa los dobles:&lt;br /&gt;
54-3 &lt;br /&gt;
Entrada ¡INVALIDO!&lt;br /&gt;
Ingresa los dobles:&lt;br /&gt;
66&lt;br /&gt;
q&lt;br /&gt;
&lt;br /&gt;
Aquí son sus 9 dobles:&lt;br /&gt;
  23.00  -23.00   23.46  -23.45 123456.00 -12345.00 8765.20 &lt;br /&gt;
  45.67   66.00 &lt;br /&gt;
¡Listo!&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>
	<entry>
		<id>http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog105&amp;diff=5495</id>
		<title>Curso de Programación en C/Prog105</title>
		<link rel="alternate" type="text/html" href="http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog105&amp;diff=5495"/>
		<updated>2014-06-01T15:12:57Z</updated>

		<summary type="html">&lt;p&gt;Perseuz: /* Prog105 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
* [[:#Prog105 | Multiples Archivos]]&lt;br /&gt;
** [[:#Resultado | Resultado]]&lt;br /&gt;
** [[:#Explicación | Explicación]]&lt;br /&gt;
&lt;br /&gt;
== Prog105 ==&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;
//Archivo Prog105a.c&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void InformeDelConteo( void );&lt;br /&gt;
extern void acumularse( int );&lt;br /&gt;
&lt;br /&gt;
int Contar = 0;&lt;br /&gt;
&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
  int Valor;&lt;br /&gt;
  register int i;&lt;br /&gt;
&lt;br /&gt;
  printf( &amp;quot;Ingresa un número entero positivo (0 a terminar): &amp;quot; );&lt;br /&gt;
&lt;br /&gt;
  while( scanf( &amp;quot;%d&amp;quot;, &amp;amp;Valor ) == 1 &amp;amp;&amp;amp; Valor &amp;gt; 0 )  // mientras que scanf() lea un dato y este sea positivo&lt;br /&gt;
  {&lt;br /&gt;
    ++Contar;&lt;br /&gt;
&lt;br /&gt;
    for( i = Valor; i &amp;gt;= 0; i-- )&lt;br /&gt;
      acumularse(i);&lt;br /&gt;
    printf( &amp;quot;Ingresa un número entero positivo (0 a terminar): &amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  InformeDelConteo();   // scanf() recibe un dato negativo o cero&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void InformeDelConteo( void )&lt;br /&gt;
{&lt;br /&gt;
  printf( &amp;quot;El while loop fue ejecutado %d veces\n&amp;quot;, Contar );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Archivo Prog105b.c&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
extern int Contar; &lt;br /&gt;
static int total = 0;&lt;br /&gt;
&lt;br /&gt;
void acumularse( int k )&lt;br /&gt;
{&lt;br /&gt;
  static int subtotal = 0;&lt;br /&gt;
&lt;br /&gt;
  if( k &amp;lt;= 0 )&lt;br /&gt;
  {&lt;br /&gt;
    printf( &amp;quot;ciclo de loop: %d\n&amp;quot;, Contar );&lt;br /&gt;
    printf( &amp;quot;subtotal: %d; total: %d\n&amp;quot;, subtotal, total );&lt;br /&gt;
    subtotal = 0;&lt;br /&gt;
  }&lt;br /&gt;
  else&lt;br /&gt;
  {&lt;br /&gt;
    subtotal += k;&lt;br /&gt;
    total += k;&lt;br /&gt;
  }&lt;br /&gt;
}&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 Prog105 Prog105a.c Prog105b.c &lt;br /&gt;
[rrc@llawyr CClase]$ ./Prog105&lt;br /&gt;
Ingresa un númenro entero positivo (0 a terminar): 1&lt;br /&gt;
ciclo de loop: 1&lt;br /&gt;
subtotal: 1; total: 1&lt;br /&gt;
Ingresa un númenro entero positivo (0 a terminar): 1&lt;br /&gt;
ciclo de loop: 2&lt;br /&gt;
subtotal: 1; total: 2&lt;br /&gt;
Ingresa un númenro entero positivo (0 a terminar): 2&lt;br /&gt;
ciclo de loop: 3&lt;br /&gt;
subtotal: 3; total: 5&lt;br /&gt;
Ingresa un númenro entero positivo (0 a terminar): 2&lt;br /&gt;
ciclo de loop: 4&lt;br /&gt;
subtotal: 3; total: 8&lt;br /&gt;
Ingresa un númenro entero positivo (0 a terminar): 3&lt;br /&gt;
ciclo de loop: 5&lt;br /&gt;
subtotal: 6; total: 14&lt;br /&gt;
Ingresa un númenro entero positivo (0 a terminar): 3&lt;br /&gt;
ciclo de loop: 6&lt;br /&gt;
subtotal: 6; total: 20&lt;br /&gt;
Ingresa un númenro entero positivo (0 a terminar): 4&lt;br /&gt;
ciclo de loop: 7&lt;br /&gt;
subtotal: 10; total: 30&lt;br /&gt;
Ingresa un númenro entero positivo (0 a terminar): 0&lt;br /&gt;
El while loop fue ejecutado 7 veces&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>
	<entry>
		<id>http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog68&amp;diff=5491</id>
		<title>Curso de Programación en C/Prog68</title>
		<link rel="alternate" type="text/html" href="http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog68&amp;diff=5491"/>
		<updated>2014-05-30T16:05:02Z</updated>

		<summary type="html">&lt;p&gt;Perseuz: /* Prog68 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
* [[:#Prog68 | Más restricciónes locales]]&lt;br /&gt;
** [[:#Resultado | Resultado]]&lt;br /&gt;
** [[:#Explicación | Explicación]]&lt;br /&gt;
&lt;br /&gt;
== Prog68 ==&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;
&lt;br /&gt;
void intercambio( int u, int v );&lt;br /&gt;
&lt;br /&gt;
int main( void )&lt;br /&gt;
{&lt;br /&gt;
  int x = 5,&lt;br /&gt;
      y = 10;&lt;br /&gt;
&lt;br /&gt;
  printf( &amp;quot;Originalmente x = %d e y = %d.\n&amp;quot;, x , y );&lt;br /&gt;
  intercambio( x, y );&lt;br /&gt;
  printf( &amp;quot;En main(), Después de intercambio( x, y ) x = %d e y = %d.\n&amp;quot;,&lt;br /&gt;
                                                                   x, y );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void intercambio( int u, int v )&lt;br /&gt;
{&lt;br /&gt;
  int temp;&lt;br /&gt;
&lt;br /&gt;
  printf( &amp;quot;Inicialmente en intercambio u = %d y v = %d.\n&amp;quot;, u , v );&lt;br /&gt;
  temp = u;&lt;br /&gt;
  u = v;&lt;br /&gt;
  v = temp;&lt;br /&gt;
  printf( &amp;quot;En intercambio(), Después de intercambiar u = %d y v = %d.\n&amp;quot;,&lt;br /&gt;
                                                                   u, v );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Resultado ===&lt;br /&gt;
&lt;br /&gt;
 [rrc@Pridd CClase]$ gcc -Wall -O2 -o Prog68 Prog68.c&lt;br /&gt;
 [rrc@Pridd CClase]$ ./Prog68&lt;br /&gt;
 Originalmente x = 5 e y = 10.&lt;br /&gt;
 Inicialmente en intercambio u = 5 y v = 10.&lt;br /&gt;
 En intercambio(), Después de intercambiar u = 10 y v = 5.&lt;br /&gt;
 En main(), Después de intercambio( x, y ) x = 5 e y = 10.&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>
	<entry>
		<id>http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog100&amp;diff=5484</id>
		<title>Curso de Programación en C/Prog100</title>
		<link rel="alternate" type="text/html" href="http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog100&amp;diff=5484"/>
		<updated>2014-05-28T18:04:15Z</updated>

		<summary type="html">&lt;p&gt;Perseuz: /* Prog100 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
* [[:#Prog100 | strtol()]]&lt;br /&gt;
** [[:#Resultado | Resultado]]&lt;br /&gt;
** [[:#Explicación | Explicación]]&lt;br /&gt;
&lt;br /&gt;
== Prog100 ==&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;
int main( void )&lt;br /&gt;
{&lt;br /&gt;
  char numero[30];&lt;br /&gt;
  char * Fin;&lt;br /&gt;
  long Valor;&lt;br /&gt;
&lt;br /&gt;
  printf( &amp;quot;Ingresa un número (Returno de carro para terminar): &amp;quot; );&lt;br /&gt;
&lt;br /&gt;
  while( fgets( numero, 29, stdin ) &amp;amp;&amp;amp; numero[0] != &amp;#039;\n&amp;#039; )&lt;br /&gt;
  {&lt;br /&gt;
    *(numero + ( strlen( numero ) -1 )) = &amp;#039;\0&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
    Valor = strtol( numero, &amp;amp;Fin, 10 );  /* base 10 */&lt;br /&gt;
    printf( &amp;quot;Valor: %ld, terminado a %s (%d)\n&amp;quot;,&lt;br /&gt;
                 Valor, Fin, *Fin );&lt;br /&gt;
    Valor = strtol( numero, &amp;amp;Fin, 16 );  /* base 16 */&lt;br /&gt;
    printf( &amp;quot;Valor: %ld, terminado a %s (%d)\n&amp;quot;,&lt;br /&gt;
                 Valor, Fin, *Fin );&lt;br /&gt;
    printf( &amp;quot;Siguiente numero: &amp;quot; );&lt;br /&gt;
  }&lt;br /&gt;
  puts( &amp;quot;\n¡Adios!\n&amp;quot; );&lt;br /&gt;
  return 0;&lt;br /&gt;
}&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 Prog100 Prog100.c&lt;br /&gt;
[rrc@llawyr CClase]$ ./Prog100&lt;br /&gt;
Ingresa un número (Returno de carro para terminar): 46&lt;br /&gt;
Valor: 46, terminado a  (0)&lt;br /&gt;
Valor: 70, terminado a  (0)&lt;br /&gt;
Siguiente numero:           356.7&lt;br /&gt;
Valor: 356, terminado a .7 (46)&lt;br /&gt;
Valor: 854, terminado a .7 (46)&lt;br /&gt;
Siguiente numero: -87&lt;br /&gt;
Valor: -87, terminado a  (0)&lt;br /&gt;
Valor: -135, terminado a  (0)&lt;br /&gt;
Siguiente numero:         765iu45&lt;br /&gt;
Valor: 765, terminado a iu45 (105)&lt;br /&gt;
Valor: 1893, terminado a iu45 (105)&lt;br /&gt;
Siguiente numero: &lt;br /&gt;
Ingresa un número (Returno de carro para terminar): 24abcg&lt;br /&gt;
Valor: 24, terminado a abcg (97)&lt;br /&gt;
Valor: 150204, terminado a g (103)&lt;br /&gt;
Siguiente numero: &lt;br /&gt;
&lt;br /&gt;
¡Adios!&lt;br /&gt;
&lt;br /&gt;
[rrc@llawyr CClase]$&lt;br /&gt;
&amp;lt;/pre&amp;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>
	<entry>
		<id>http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog89&amp;diff=5478</id>
		<title>Curso de Programación en C/Prog89</title>
		<link rel="alternate" type="text/html" href="http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog89&amp;diff=5478"/>
		<updated>2014-05-21T16:23:50Z</updated>

		<summary type="html">&lt;p&gt;Perseuz: /* Prog89 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
* [[:#Prog89 | strcmp()]]&lt;br /&gt;
** [[:#Resultado | Resultado]]&lt;br /&gt;
** [[:#Explicación | Explicación]]&lt;br /&gt;
&lt;br /&gt;
== Prog89 ==&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;string.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define PAIS &amp;quot;India&amp;quot;&lt;br /&gt;
&lt;br /&gt;
void ObtenRespuesta( void );&lt;br /&gt;
&lt;br /&gt;
char respuesta[40];&lt;br /&gt;
&lt;br /&gt;
int main( void )&lt;br /&gt;
{&lt;br /&gt;
  printf( &amp;quot;En que pais es el Taj Mahal? &amp;quot; );&lt;br /&gt;
  ObtenRespuesta();&lt;br /&gt;
&lt;br /&gt;
  while( strcmp( respuesta, PAIS ) )         //strcmp(): Compara dos strings &lt;br /&gt;
  {&lt;br /&gt;
    printf( &amp;quot;No, incorrecto. Otra ves: &amp;quot; );&lt;br /&gt;
    ObtenRespuesta();&lt;br /&gt;
  }&lt;br /&gt;
  puts( &amp;quot;¡Correcto!&amp;quot; );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void ObtenRespuesta( void )&lt;br /&gt;
{&lt;br /&gt;
  fgets( respuesta, 37, stdin );&lt;br /&gt;
  if( *(respuesta + strlen( respuesta ) - 1) == &amp;#039;\n&amp;#039; )&lt;br /&gt;
    *(respuesta + strlen( respuesta ) - 1) = &amp;#039;\0&amp;#039;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Resultado ===&lt;br /&gt;
 &lt;br /&gt;
 [rrc@llawyr CClase]$ gcc -Wall -o Prog89 Prog89.c &lt;br /&gt;
 [rrc@llawyr CClase]$ ./Prog89&lt;br /&gt;
 En que pais es el Taj Mahal? Italia&lt;br /&gt;
 No, incorrecto. Otra ves: Grecia&lt;br /&gt;
 No, incorrecto. Otra ves: india&lt;br /&gt;
 No, incorrecto. Otra ves: India&lt;br /&gt;
 ¡Correcto!&lt;br /&gt;
 [rrc@llawyr CClase]$ &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>
	<entry>
		<id>http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog88&amp;diff=5477</id>
		<title>Curso de Programación en C/Prog88</title>
		<link rel="alternate" type="text/html" href="http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog88&amp;diff=5477"/>
		<updated>2014-05-21T16:17:06Z</updated>

		<summary type="html">&lt;p&gt;Perseuz: /* Resultado */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
* [[:#Prog88 | Prog87 con fgets()]]&lt;br /&gt;
** [[:#Resultado | Resultado]]&lt;br /&gt;
** [[:#Explicación | Explicación]]&lt;br /&gt;
&lt;br /&gt;
== Prog88 ==&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;string.h&amp;gt;  /* para usar strcat() */&lt;br /&gt;
&lt;br /&gt;
#define TAMANO 80&lt;br /&gt;
&lt;br /&gt;
int main( void )&lt;br /&gt;
{&lt;br /&gt;
  char flor[TAMANO],&lt;br /&gt;
       agregado[] = &amp;quot;s huelen como zapatos viejos.&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
  printf( &amp;quot;¿Cuál es su flor preferida? &amp;quot; );&lt;br /&gt;
  fgets( flor, 51, stdin );                 // char *fgets(char *s, int n, FILE *flujo): Toma un string&lt;br /&gt;
                                            // de un flujo&lt;br /&gt;
  *(flor + strlen( flor ) - 1 ) = &amp;#039;\0&amp;#039;;     // strlen(): Calcula la longitud de un string&lt;br /&gt;
  strcat( flor, agregado );&lt;br /&gt;
  puts( flor );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Resultado ===&lt;br /&gt;
  &lt;br /&gt;
 [rrc@llawyr CClase]$ gcc -Wall -o Prog88 Prog88.c&lt;br /&gt;
 [rrc@llawyr CClase]$ ./Prog88&lt;br /&gt;
 ¿Cuál es su flor preferida? Rosa&lt;br /&gt;
 Rosas huelen como zapatos viejos.&lt;br /&gt;
 [rrc@llawyr CClase]$&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>
	<entry>
		<id>http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog87&amp;diff=5475</id>
		<title>Curso de Programación en C/Prog87</title>
		<link rel="alternate" type="text/html" href="http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog87&amp;diff=5475"/>
		<updated>2014-05-21T16:12:37Z</updated>

		<summary type="html">&lt;p&gt;Perseuz: /* Prog87 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
* [[:#Prog87| strcat()]]&lt;br /&gt;
** [[:#Resultado | Resultado]]&lt;br /&gt;
** [[:#Explicación | Explicación]]&lt;br /&gt;
&lt;br /&gt;
== Prog87 ==&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;string.h&amp;gt;  /* para usar strcat() */&lt;br /&gt;
&lt;br /&gt;
#define TAMANO 80&lt;br /&gt;
&lt;br /&gt;
int main( void )&lt;br /&gt;
{&lt;br /&gt;
  char flor[TAMANO],&lt;br /&gt;
       agregado[] = &amp;quot;s huelen como zapatos viejos.&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
  printf( &amp;quot;¿Cuál es su flor preferida? &amp;quot; );&lt;br /&gt;
  gets( flor );&lt;br /&gt;
  strcat( flor, agregado );  //strcat() Añade un string a otro&lt;br /&gt;
  puts( flor );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Resultado ===&lt;br /&gt;
  &lt;br /&gt;
 [rrc@llawyr CClase]$ gcc -Wall -o Prog87 Prog87.c&lt;br /&gt;
 [rrc@llawyr CClase]$ ./Prog87&lt;br /&gt;
 ¿Cuál es su flor preferida? Anthurium&lt;br /&gt;
 Anthuriums huelen como zapatos viejos.&lt;br /&gt;
 [rrc@llawyr CClase]$ &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>
	<entry>
		<id>http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog77&amp;diff=5472</id>
		<title>Curso de Programación en C/Prog77</title>
		<link rel="alternate" type="text/html" href="http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog77&amp;diff=5472"/>
		<updated>2014-05-20T01:26:46Z</updated>

		<summary type="html">&lt;p&gt;Perseuz: /* Resultado */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
* [[:#Prog77 | Arregle de tamaños variables]]&lt;br /&gt;
** [[:#Resultado | Resultado]]&lt;br /&gt;
** [[:#Explicación | Explicación]]&lt;br /&gt;
&lt;br /&gt;
== Prog77 ==&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;
&lt;br /&gt;
#define FILAS 3&lt;br /&gt;
#define COLS 4&lt;br /&gt;
&lt;br /&gt;
int sum2d( int rows, int cols, int ar[rows][cols] );&lt;br /&gt;
&lt;br /&gt;
int main( void )&lt;br /&gt;
{&lt;br /&gt;
   int cs = 10,&lt;br /&gt;
       i,&lt;br /&gt;
       j,&lt;br /&gt;
       junk[FILAS][COLS] = {&lt;br /&gt;
                             {2,4,6,8},&lt;br /&gt;
                             {3,5,7,9},&lt;br /&gt;
                             {12,10,8,6}&lt;br /&gt;
                           },&lt;br /&gt;
       masjunk[FILAS-1][COLS+2] = {&lt;br /&gt;
                                    {20,30,40,50,60,70},&lt;br /&gt;
                                    {5,6,7,8,9,10}&lt;br /&gt;
                                  },&lt;br /&gt;
       rs = 3,&lt;br /&gt;
       varr[rs][cs];&lt;br /&gt;
&lt;br /&gt;
   for( i = 0; i &amp;lt; rs; i++ )&lt;br /&gt;
     for( j = 0; j &amp;lt; cs; j++ )&lt;br /&gt;
       varr[i][j] = i * j + j;&lt;br /&gt;
&lt;br /&gt;
   printf( &amp;quot;3x5 arreglo\n&amp;quot; );&lt;br /&gt;
   printf( &amp;quot;Sum de todos los elementos = %d\n&amp;quot;,&lt;br /&gt;
              sum2d( FILAS, COLS, junk ) );&lt;br /&gt;
&lt;br /&gt;
   printf( &amp;quot;2x6 arreglo\n&amp;quot; );&lt;br /&gt;
   printf( &amp;quot;Sum de todos los elementos = %d\n&amp;quot;,&lt;br /&gt;
              sum2d( FILAS-1, COLS+2, masjunk ) );&lt;br /&gt;
&lt;br /&gt;
   printf( &amp;quot;3x10 VLA\n&amp;quot; );&lt;br /&gt;
   printf( &amp;quot;Sum de todos los elementos = %d\n&amp;quot;,&lt;br /&gt;
              sum2d( rs, cs, varr ) );&lt;br /&gt;
&lt;br /&gt;
   return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int sum2d( int rows, int cols, int ar[rows][cols] )&lt;br /&gt;
{&lt;br /&gt;
  int r;&lt;br /&gt;
  int c;&lt;br /&gt;
  int tot = 0;&lt;br /&gt;
&lt;br /&gt;
  for( r = 0; r &amp;lt; rows; r++ )&lt;br /&gt;
    for( c = 0; c &amp;lt; cols; c++ )&lt;br /&gt;
      tot += ar[r][c];&lt;br /&gt;
&lt;br /&gt;
  return tot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Resultado ===&lt;br /&gt;
 &lt;br /&gt;
 [rrc@Pridd CClase]$ gcc -Wall -O2 -o Prog77 Prog77.c&lt;br /&gt;
 [rrc@Pridd CClase]$ ./Prog77&lt;br /&gt;
 3x5 arreglo&lt;br /&gt;
 Sum de todos los elementos = 80&lt;br /&gt;
 2x6 arreglo&lt;br /&gt;
 Sum de todos los elementos = 315&lt;br /&gt;
 3x10 VLA&lt;br /&gt;
 Sum de todos los elementos = 270&lt;br /&gt;
 [rrc@Pridd CClase]$ &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;br /&gt;
&lt;br /&gt;
La asignación de los elementos del arreglo varr = [rs][cs] queda así:&lt;br /&gt;
&lt;br /&gt;
for( i = 0; i &amp;lt; rs; i++ )&lt;br /&gt;
   for( j = 0; j &amp;lt; cs; j++ )&lt;br /&gt;
     varr[i][j] = i * j + j;&lt;br /&gt;
&lt;br /&gt;
igual a:&lt;br /&gt;
&lt;br /&gt;
varr = [3][10] = { { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 },{ 0, 2, 4, 6, 8, 10, 12, 14, 16, 18 },{ 0, 3, 6, 9, 12, 15, 18, 21, 24, 27 } }&lt;/div&gt;</summary>
		<author><name>Perseuz</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog66&amp;diff=5433</id>
		<title>Curso de Programación en C/Prog66</title>
		<link rel="alternate" type="text/html" href="http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog66&amp;diff=5433"/>
		<updated>2014-05-10T18:09:47Z</updated>

		<summary type="html">&lt;p&gt;Perseuz: /* Explicación */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
* [[:#Prog66 | Función Recursivo]]&lt;br /&gt;
** [[:#Resultado | Resultado]]&lt;br /&gt;
** [[:#Explicación | Explicación]]&lt;br /&gt;
&lt;br /&gt;
== Prog66 ==&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;
&lt;br /&gt;
void a_binario( unsigned long n );&lt;br /&gt;
&lt;br /&gt;
int main( void )&lt;br /&gt;
{&lt;br /&gt;
  unsigned long numero;&lt;br /&gt;
  printf( &amp;quot;Que intero quieres convertir en binario (q para terminar)? &amp;quot; );&lt;br /&gt;
  while( scanf( &amp;quot;%lu&amp;quot;, &amp;amp;numero ) == 1 )&lt;br /&gt;
  {&lt;br /&gt;
    printf(&amp;quot;Equivalente Binario: &amp;quot;);&lt;br /&gt;
    a_binario( numero );&lt;br /&gt;
    putchar( &amp;#039;\n&amp;#039; );&lt;br /&gt;
    putchar( &amp;#039;\n&amp;#039; );&lt;br /&gt;
    printf( &amp;quot;Que intero quieres convertir en binario (q para terminar)? &amp;quot; );&lt;br /&gt;
  }&lt;br /&gt;
  printf( &amp;quot;Listo.\n&amp;quot; );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void a_binario( unsigned long n )&lt;br /&gt;
{&lt;br /&gt;
  int r;&lt;br /&gt;
&lt;br /&gt;
  r = n % 2;&lt;br /&gt;
  if ( n &amp;gt;= 2 )&lt;br /&gt;
    a_binario( n / 2 );&lt;br /&gt;
  putchar( &amp;#039;0&amp;#039; + r );&lt;br /&gt;
&lt;br /&gt;
  return;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Resultado ===&lt;br /&gt;
 &lt;br /&gt;
 [rrc@Pridd CClase]$ gcc -Wall -O2 -o Prog66 Prog66.c&lt;br /&gt;
 [rrc@Pridd CClase]$ ./Prog66&lt;br /&gt;
 Que intero quieres convertir en binario (q para terminar)? 1&lt;br /&gt;
 Equivalente Binario: 1&lt;br /&gt;
 &lt;br /&gt;
 Que intero quieres convertir en binario (q para terminar)? 2&lt;br /&gt;
 Equivalente Binario: 10&lt;br /&gt;
 &lt;br /&gt;
 Que intero quieres convertir en binario (q para terminar)? 3&lt;br /&gt;
 Equivalente Binario: 11&lt;br /&gt;
 &lt;br /&gt;
 Que intero quieres convertir en binario (q para terminar)? 4&lt;br /&gt;
 Equivalente Binario: 100&lt;br /&gt;
 &lt;br /&gt;
 Que intero quieres convertir en binario (q para terminar)? 5&lt;br /&gt;
 Equivalente Binario: 101&lt;br /&gt;
 &lt;br /&gt;
 Que intero quieres convertir en binario (q para terminar)? 55&lt;br /&gt;
 Equivalente Binario: 110111&lt;br /&gt;
 &lt;br /&gt;
 Que intero quieres convertir en binario (q para terminar)? 44444555&lt;br /&gt;
 Equivalente Binario: 10101001100010101110001011&lt;br /&gt;
 &lt;br /&gt;
 Que intero quieres convertir en binario (q para terminar)? q&lt;br /&gt;
 Listo.&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;br /&gt;
Ejemplo para el número 4: El truco está en seguir el flujo de control hasta volver a main(). Notece que la variable r de uno a otro bloque, aunque se llama igual no es la misma. Se crea en cada bloque, posee su propia dirección de memoria y no es sobreescrita por la calculada en otro bloque.&lt;br /&gt;
&lt;br /&gt;
n = 4: &amp;lt;-------- Viene de main()&lt;br /&gt;
&lt;br /&gt;
a_binario (4) --------&amp;gt; n = 4&lt;br /&gt;
{&lt;br /&gt;
    int r;&lt;br /&gt;
    r = 4 % 2; --------&amp;gt; r = 0&lt;br /&gt;
    if (4 &amp;gt;= 2) &amp;lt;-- Verdadero&lt;br /&gt;
&lt;br /&gt;
        a_binario (4/2) --------&amp;gt; n = 2&lt;br /&gt;
        {&lt;br /&gt;
            int r;&lt;br /&gt;
            r = 2 % 2; --------&amp;gt; r = 0&lt;br /&gt;
            if (2 &amp;gt;= 2) &amp;lt;-- Verdadero&lt;br /&gt;
&lt;br /&gt;
                a_binario (2/2) --------&amp;gt; n = 1&lt;br /&gt;
                {&lt;br /&gt;
                    int r;&lt;br /&gt;
                    r = 1 % 2; --------&amp;gt; r = 1&lt;br /&gt;
                    if (1 &amp;gt;= 2) &amp;lt;-- Falso&lt;br /&gt;
                    putchar(&amp;#039;0&amp;#039; + 1)--------&amp;gt; Imprime 1&lt;br /&gt;
                    return;&lt;br /&gt;
                }&lt;br /&gt;
&lt;br /&gt;
            putchar(&amp;#039;0&amp;#039; + 0)--------&amp;gt; Imprime 0&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
    putchar(&amp;#039;0&amp;#039; + 0)--------&amp;gt; Imprime 0&lt;br /&gt;
    return;&lt;br /&gt;
} &amp;lt;-------- Vuelve el control a main()&lt;br /&gt;
&lt;br /&gt;
Impresión final: 100&lt;/div&gt;</summary>
		<author><name>Perseuz</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog57&amp;diff=5407</id>
		<title>Curso de Programación en C/Prog57</title>
		<link rel="alternate" type="text/html" href="http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog57&amp;diff=5407"/>
		<updated>2014-05-02T21:25:41Z</updated>

		<summary type="html">&lt;p&gt;Perseuz: /* Resultado */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
* [[:#Prog57 | Validación de ingreso]]&lt;br /&gt;
** [[:#Resultado | Resultado]]&lt;br /&gt;
** [[:#Explicación | Explicación]]&lt;br /&gt;
&lt;br /&gt;
== Prog57 ==&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;stdbool.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int obten_int( void ); // Validar que ingreso es int&lt;br /&gt;
bool mal_limites( int inicia, int termina, int bajo, int alto );&lt;br /&gt;
double suma_cuadrados( int a, int b );&lt;br /&gt;
&lt;br /&gt;
int main( void )&lt;br /&gt;
{&lt;br /&gt;
  const int MIN = -1000;  &lt;br /&gt;
  const int MAX = +1000;  &lt;br /&gt;
  int inicio;&lt;br /&gt;
  int termina;&lt;br /&gt;
  double respuesta;&lt;br /&gt;
&lt;br /&gt;
  printf( &amp;quot;Este programa calcula la suma de los cuadrados de enteros\n&amp;quot;&lt;br /&gt;
          &amp;quot;en un rango entre -1000 y +1000.\n&amp;quot;&lt;br /&gt;
          &amp;quot;Entra los limites (0 en los dos limites para terminar)\n&amp;quot;&lt;br /&gt;
          &amp;quot;Limite bajo: &amp;quot; );&lt;br /&gt;
  inicio = obten_int();&lt;br /&gt;
  printf( &amp;quot;Limite alto: &amp;quot; );&lt;br /&gt;
  termina = obten_int();&lt;br /&gt;
  while( inicio !=0 || termina != 0 )&lt;br /&gt;
  {&lt;br /&gt;
    if( mal_limites( inicio, termina, MIN, MAX ) )&lt;br /&gt;
      printf( &amp;quot;Otra vez por favor.\n&amp;quot; );&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
      respuesta = suma_cuadrados( inicio, termina );&lt;br /&gt;
      printf( &amp;quot;La suma de los cuadrados de los enteros &amp;quot; );&lt;br /&gt;
      printf( &amp;quot;entre %d y %d es %g\n&amp;quot;, inicio, termina, respuesta );&lt;br /&gt;
    }&lt;br /&gt;
    printf( &amp;quot;Entra los limites (0 en los dos &amp;quot;&lt;br /&gt;
            &amp;quot;para terminar)\n&amp;quot; );&lt;br /&gt;
    printf( &amp;quot;limite bajo: &amp;quot; );&lt;br /&gt;
    inicio = obten_int();&lt;br /&gt;
    printf( &amp;quot;limite alto: &amp;quot; );&lt;br /&gt;
    termina = obten_int();&lt;br /&gt;
  }&lt;br /&gt;
  printf( &amp;quot;Listo.\n&amp;quot; );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int obten_int( void )&lt;br /&gt;
{&lt;br /&gt;
  int ingreso;&lt;br /&gt;
  char ch;&lt;br /&gt;
&lt;br /&gt;
  while( scanf( &amp;quot;%d&amp;quot;, &amp;amp;ingreso ) != 1)&lt;br /&gt;
  {&lt;br /&gt;
    while( ( ch = getchar() ) != &amp;#039;\n&amp;#039; )&lt;br /&gt;
      putchar( ch );&lt;br /&gt;
    printf( &amp;quot; no es un entero.\nFavor entrar un &amp;quot; );&lt;br /&gt;
    printf( &amp;quot;entero cómo 25, -178, o 3: &amp;quot; );&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  return ingreso;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
double suma_cuadrados( int a, int b )&lt;br /&gt;
{&lt;br /&gt;
  double total = 0;&lt;br /&gt;
  int i;&lt;br /&gt;
&lt;br /&gt;
  for( i = a; i &amp;lt;= b; i++ )&lt;br /&gt;
    total += i * i;&lt;br /&gt;
&lt;br /&gt;
  return total;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
bool mal_limites( int inicio, int termina, int bajo, int alto )&lt;br /&gt;
{&lt;br /&gt;
  bool no_bueno = false;&lt;br /&gt;
&lt;br /&gt;
  if( inicio &amp;gt; termina )&lt;br /&gt;
  {&lt;br /&gt;
    printf( &amp;quot;%d no es menor que %d.\n&amp;quot;, inicio, termina );&lt;br /&gt;
      no_bueno = true;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  if( inicio &amp;lt; bajo || termina &amp;lt; bajo )&lt;br /&gt;
  {&lt;br /&gt;
    printf( &amp;quot;Valores deben ser &amp;gt;= %d.\n&amp;quot;, bajo );&lt;br /&gt;
      no_bueno = true;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  if( inicio &amp;gt; alto || termina &amp;gt; alto )&lt;br /&gt;
  {&lt;br /&gt;
    printf( &amp;quot;Valores deben ser &amp;lt;= %d.\n&amp;quot;, alto );&lt;br /&gt;
      no_bueno = true;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  return no_bueno;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Resultado ===&lt;br /&gt;
&lt;br /&gt;
 [rrc@Pridd CClase]$ gcc -Wall -O2 -o Prog57 Prog57.c&lt;br /&gt;
 [rrc@Pridd CClase]$ ./Prog57&lt;br /&gt;
 Este programa calcula la suma de los cuadrados de enteros&lt;br /&gt;
 en un rango entre -1000 y +1000.&lt;br /&gt;
 Entra los limites (0 en los dos limites para terminar)&lt;br /&gt;
 Limite bajo: 4r&lt;br /&gt;
 limite alto: r no es un entero.&lt;br /&gt;
 Favor a entrar un entero cómo 25, -178, o 3: 999&lt;br /&gt;
 La suma de los cuadrados de los enteros entre 4 y 999 es 3.32833e+08&lt;br /&gt;
 Entra los limites (0 en los dos para terminar)&lt;br /&gt;
 limite bajo: 45&lt;br /&gt;
 limite alto: 33&lt;br /&gt;
 45 no es menor que 33.&lt;br /&gt;
 Otra vez por favor.&lt;br /&gt;
 Entra los limites (0 en los dos para terminar)&lt;br /&gt;
 limite bajo: 999&lt;br /&gt;
 limite alto: 2000&lt;br /&gt;
 Valores deben ser &amp;lt;= 1000.&lt;br /&gt;
 Otra ves por favor.&lt;br /&gt;
 Entra los limites (0 en los dos para terminar)&lt;br /&gt;
 limite bajo: -1200&lt;br /&gt;
 limite alto: 3&lt;br /&gt;
 Valores deben ser &amp;gt;= -1000.&lt;br /&gt;
 Otra vez por favor.&lt;br /&gt;
 Entra los limites (0 en los dos para terminar)&lt;br /&gt;
 limite bajo: 3&lt;br /&gt;
 limite alto: 4&lt;br /&gt;
 La suma de los cuadrados de los enteros entre 3 y 4 es 25&lt;br /&gt;
 Entra los limites (0 en los dos para terminar)&lt;br /&gt;
 limite bajo: -3&lt;br /&gt;
 limite alto: 3&lt;br /&gt;
 La suma de los cuadrados de los enteros entre -3 y 3 es 28&lt;br /&gt;
 Entra los limites (0 en los dos para terminar)&lt;br /&gt;
 limite bajo: 0&lt;br /&gt;
 limite alto: 0&lt;br /&gt;
 Listo.&lt;br /&gt;
 [rrc@Pridd CClase]$&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;br /&gt;
Linea 50. scanf() != 1: significa q ingreso no ha sido asignado pq el texto ingresado no coincide con un entero.&lt;/div&gt;</summary>
		<author><name>Perseuz</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog56&amp;diff=5403</id>
		<title>Curso de Programación en C/Prog56</title>
		<link rel="alternate" type="text/html" href="http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog56&amp;diff=5403"/>
		<updated>2014-05-02T15:02:38Z</updated>

		<summary type="html">&lt;p&gt;Perseuz: /* Explicación */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
* [[:#Prog56 | Leer un Archivo]]&lt;br /&gt;
** [[:#Resultado | Resultado]]&lt;br /&gt;
** [[:#Explicación | Explicación]]&lt;br /&gt;
&lt;br /&gt;
== Prog56 ==&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;
&lt;br /&gt;
int main( void )&lt;br /&gt;
{&lt;br /&gt;
  int ch;&lt;br /&gt;
  FILE * fp;&lt;br /&gt;
  char NArchivo[50];&lt;br /&gt;
&lt;br /&gt;
  printf(&amp;quot;¿Que archivo quieres ver? &amp;quot;);&lt;br /&gt;
  scanf(&amp;quot;%s&amp;quot;, NArchivo);&lt;br /&gt;
&lt;br /&gt;
  if( ( fp = fopen(NArchivo, &amp;quot;r&amp;quot;) ) == NULL )&lt;br /&gt;
  {&lt;br /&gt;
    printf( &amp;quot;No puedo abrir %s\n&amp;quot;, NArchivo );&lt;br /&gt;
    exit(1);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  while( ( ch = getc( fp ) ) != EOF )&lt;br /&gt;
    putchar( ch );&lt;br /&gt;
  fclose( fp );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Resultado ===&lt;br /&gt;
 &lt;br /&gt;
 ¿Que archivo quieres ver? Prog56.c&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 int main( void )&lt;br /&gt;
 {&lt;br /&gt;
   int ch;&lt;br /&gt;
   FILE * fp;&lt;br /&gt;
   char NArchivo[50];&lt;br /&gt;
 &lt;br /&gt;
   printf(&amp;quot;¿Que archivo quieres ver? &amp;quot;);&lt;br /&gt;
   scanf(&amp;quot;%s&amp;quot;, NArchivo);&lt;br /&gt;
 &lt;br /&gt;
   if( ( fp = fopen(NArchivo, &amp;quot;r&amp;quot;) ) == NULL )&lt;br /&gt;
   {&lt;br /&gt;
     printf( &amp;quot;No puedo abrir %s\n&amp;quot;, NArchivo );&lt;br /&gt;
     exit(1);&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   while( ( ch = getc( fp ) ) != EOF )&lt;br /&gt;
     putchar( ch );&lt;br /&gt;
   fclose( fp );&lt;br /&gt;
 &lt;br /&gt;
   return 0;&lt;br /&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;br /&gt;
&lt;br /&gt;
Para Windows, el archivo Prog01.c que vamos a abrir, debe estar en la carpeta donde se encuentra Prog56.c&lt;br /&gt;
El formato de fopen es: fp = fopen(nombre, modo) . En el &amp;quot;nombre&amp;quot; puede especificar un path o ruta donde se encuentra el archivo.&lt;/div&gt;</summary>
		<author><name>Perseuz</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog49&amp;diff=5393</id>
		<title>Curso de Programación en C/Prog49</title>
		<link rel="alternate" type="text/html" href="http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog49&amp;diff=5393"/>
		<updated>2014-04-30T15:37:17Z</updated>

		<summary type="html">&lt;p&gt;Perseuz: /* Prog49 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
* [[:#Prog49 | Funciones para probar un caracter]]&lt;br /&gt;
** [[:#Resultado | Resultado]]&lt;br /&gt;
** [[:#Explicación | Explicación]]&lt;br /&gt;
&lt;br /&gt;
== Prog49 ==&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;
&lt;br /&gt;
int main( void )&lt;br /&gt;
{&lt;br /&gt;
  printf( &amp;quot;  Nombre        Verdad si su argumento es\n\n&amp;quot;&lt;br /&gt;
          &amp;quot; isalnum()             Alfanumerico\n&amp;quot;&lt;br /&gt;
          &amp;quot; isalpha()             Alfabetico\n&amp;quot;&lt;br /&gt;
          &amp;quot; isblank()  caracter vacio como \&amp;#039; \&amp;#039;, \&amp;#039;&amp;lt;tab&amp;gt;\&amp;#039;, \&amp;#039;\\n\&amp;#039;\n&amp;quot;&lt;br /&gt;
          &amp;quot; iscntrl()  caracter de control como \&amp;#039;&amp;lt;Ctrl+B&amp;gt;\&amp;#039;\n&amp;quot;&lt;br /&gt;
          &amp;quot; isdigit()  un numeral (\&amp;#039;0\&amp;#039; - \&amp;#039;9\&amp;#039;)\n&amp;quot;&lt;br /&gt;
          &amp;quot; isgraph()  un caracter que escribe algo que no es \&amp;#039; \&amp;#039;\n&amp;quot;&lt;br /&gt;
          &amp;quot; islower()  una minuscula\n&amp;quot;&lt;br /&gt;
          &amp;quot; isprint()  que imprime algo en la pantalla\n&amp;quot;&lt;br /&gt;
          &amp;quot; ispunct()  imprime algo que NO es \&amp;#039; \&amp;#039; , o alfanumerico\n&amp;quot;&lt;br /&gt;
          &amp;quot; isspace()  un caracter de espacio blanco\n&amp;quot;&lt;br /&gt;
          &amp;quot; isupper()  una mayuscula\n&amp;quot;&lt;br /&gt;
          &amp;quot; isxdigit() un numeral hexadecimal\n\n&amp;quot; );&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Resultado ===&lt;br /&gt;
 &lt;br /&gt;
 [rrc@Pridd CClase]$ gcc -Wall -O2 -o Prog49 Prog49.c &lt;br /&gt;
 [rrc@Pridd CClase]$ ./Prog49 &lt;br /&gt;
 &lt;br /&gt;
  Nombre        Verdad si su argumento es&lt;br /&gt;
 &lt;br /&gt;
 isalnum()             Alfanumerico&lt;br /&gt;
 isalpha()             Alfabetico&lt;br /&gt;
 isblank()  caracter vacio como &amp;#039; &amp;#039;, &amp;#039;&amp;lt;tab&amp;gt;&amp;#039;, &amp;#039;\n&amp;#039;&lt;br /&gt;
 iscntrl()  caracter de control como &amp;#039;&amp;lt;Ctrl+B&amp;gt;&amp;#039;&lt;br /&gt;
 isdigit()  un numeral (&amp;#039;0&amp;#039; - &amp;#039;9&amp;#039;)&lt;br /&gt;
 isgraph()  un caracter que escribe algo que no es &amp;#039; &amp;#039;&lt;br /&gt;
 islower()  una minuscula&lt;br /&gt;
 isprint()  que imprime algo en la pantalla&lt;br /&gt;
 ispunct()  imprime algo que NO es &amp;#039; &amp;#039; , o alfanumerico&lt;br /&gt;
 isspace()  un caracter de espacio blanco&lt;br /&gt;
 isupper()  una mayuscula&lt;br /&gt;
 isxdigit() un numeral hexadecimal&lt;br /&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>
	<entry>
		<id>http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog24&amp;diff=5390</id>
		<title>Curso de Programación en C/Prog24</title>
		<link rel="alternate" type="text/html" href="http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog24&amp;diff=5390"/>
		<updated>2014-04-26T01:31:56Z</updated>

		<summary type="html">&lt;p&gt;Perseuz: /* Prog24 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
* [[:#Prog24 | Prog24]]&lt;br /&gt;
** [[:#Resultado | Resultado]]&lt;br /&gt;
** [[:#Explicación | Explicación]]&lt;br /&gt;
&lt;br /&gt;
== Prog24 ==&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;
/* Prog24.c - Salta algunas entradas */&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main( void )&lt;br /&gt;
{&lt;br /&gt;
  int n;&lt;br /&gt;
&lt;br /&gt;
  printf( &amp;quot;Ingresa tres (3) enteros por favor:\n&amp;quot; );&lt;br /&gt;
  scanf( &amp;quot;%*d %*d %d&amp;quot;, &amp;amp;n );&lt;br /&gt;
  printf( &amp;quot;El ultimo entero fue %d\n&amp;quot;, n );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Resultado ===&lt;br /&gt;
&lt;br /&gt;
 [rrc@Pridd CClase]$ gcc -Wall -O2 -o Prog24 Prog24.c&lt;br /&gt;
 [rrc@Pridd CClase]$ ./Prog24&lt;br /&gt;
 Ingresa tres (3) enteros por favor:&lt;br /&gt;
 23 -44 944&lt;br /&gt;
 El ultimo entero fue 944&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>
	<entry>
		<id>http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog21&amp;diff=5389</id>
		<title>Curso de Programación en C/Prog21</title>
		<link rel="alternate" type="text/html" href="http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog21&amp;diff=5389"/>
		<updated>2014-04-25T19:05:36Z</updated>

		<summary type="html">&lt;p&gt;Perseuz: /* Prog21 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
* [[:#Prog21 | Prog21]]&lt;br /&gt;
** [[:#Resultado | Resultado]]&lt;br /&gt;
** [[:#Explicación | Explicación]]&lt;br /&gt;
&lt;br /&gt;
== Prog21 ==&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;
/* Prog21.c -- Valor regresado por printf() */&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main( void )&lt;br /&gt;
{&lt;br /&gt;
  int EbullicionH2O = 100,&lt;br /&gt;
      ValorRegresado;&lt;br /&gt;
&lt;br /&gt;
  ValorRegresado = printf( &amp;quot;%dC es el punto de ebullicion del agua.\n&amp;quot;, EbullicionH2O );&lt;br /&gt;
  printf( &amp;quot;12345678901234567890123456789012345\n&amp;quot; );&lt;br /&gt;
  printf( &amp;quot;La funcion printf() escribio %d caracteres.\n&amp;quot;, ValorRegresado );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Resultado ===&lt;br /&gt;
&lt;br /&gt;
 [rrc@Pridd CClase]$ gcc -Wall -O2 -o Prog21 Prog21.c&lt;br /&gt;
 [rrc@Pridd CClase]$ ./Prog21&lt;br /&gt;
 100C es el punto de ebullicion del agua.&lt;br /&gt;
 12345678901234567890123456789012345&lt;br /&gt;
 La funcion printf() escribio 41 caracteres.&lt;br /&gt;
 [rrc@Pridd CClase]$&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>
	<entry>
		<id>http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog18&amp;diff=5388</id>
		<title>Curso de Programación en C/Prog18</title>
		<link rel="alternate" type="text/html" href="http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog18&amp;diff=5388"/>
		<updated>2014-04-25T15:31:48Z</updated>

		<summary type="html">&lt;p&gt;Perseuz: /* Prog18 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
* [[:#Prog18 | Prog18]]&lt;br /&gt;
** [[:#Resultado | Resultado]]&lt;br /&gt;
** [[:#Explicación | Explicación]]&lt;br /&gt;
&lt;br /&gt;
== Prog18 ==&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;
/* Prog18.c -- flags con strings */&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define BLURB &amp;quot;Imitacion autentico&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main( void )&lt;br /&gt;
{&lt;br /&gt;
  printf( &amp;quot;/%2s/\n&amp;quot;, BLURB );&lt;br /&gt;
  printf( &amp;quot;/%26s/\n&amp;quot;, BLURB );&lt;br /&gt;
  printf( &amp;quot;/123456789012345678901234567890/\n&amp;quot; );&lt;br /&gt;
  printf( &amp;quot;/%26.5s/\n&amp;quot;, BLURB );&lt;br /&gt;
  printf( &amp;quot;/123456789012345678901234567890/\n&amp;quot; );&lt;br /&gt;
  printf( &amp;quot;/%-26.5s/\n&amp;quot;, BLURB );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Resultado ===&lt;br /&gt;
&lt;br /&gt;
 [rrc@Pridd CClase]$ gcc -Wall -O2 -o Prog18 Prog18.c&lt;br /&gt;
 [rrc@Pridd CClase]$ ./Prog18&lt;br /&gt;
 /Imitacion autentico/&lt;br /&gt;
 /      Imitacion autentico/&lt;br /&gt;
 /123456789012345678901234567890/&lt;br /&gt;
 /                     Imita/&lt;br /&gt;
 /123456789012345678901234567890/&lt;br /&gt;
 /Imita                     /&lt;br /&gt;
 [rrc@Pridd CClase]$&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>