Sentencias de E/S
Printf
Despliega en pantalla valores numéricos, caracteres y cadenas de texto por formato, sustituye var1 por la primera secuencia %, var2  por la segundo % y así sucesivamente.
?
printf ("formato", var1, var2, ..., varN)
"formato": En formato se especifica qué tipo de datos se quieren escribir.

Los Modificadores:
En la cadena de "formato" indicaremos, por regla general, los modificadores que harán referencia al tipo de dato de los argumentos. El modificador está compuesto por el caracter % seguido por un caracter de conversión, que indica de que tipo de dato se trata. Los modificadores más utilizados son:
%c Un único caracter
%
d Un entero con signo, en base decimal
%
u Un entero sin signo, en base decimal
%
o Un entero en base octal
%
x Un entero en base hexadecimal
%
e Un número real en coma flotante, con exponente
%
f Un número real en coma flotante, sin exponente
%
s Una cadena de caracteres
%
p Un puntero o dirección de memoria
%%
escribir caracter '%';
Los valores correspondientes a las secuencias % se asignan a las variables var1, var2, hasta varN

Para usar
printf, debido a que pertenece a un archivo fisico que se encuentra en el directorio ..\INCLUDE, del directorio de C, hay que escribir al principio del programa la directiva siguiente:
#include <stdio.h>

Secuencias de escape
\n Salto de línea
\t Tabulación
\a Sonido
Ejemplo:
/* Uso de la sentencia printf() 1. */

#include <stdio.h>

main() /* Saca por pantalla una suma */
{
int a=20,b=10;
printf("El valor de a es
%d\n",a);
printf("El valor de b es
%d\n",b);
printf("Por tanto
%d+%d=%d",a,b,a+b);
}
Scanf
Esta instrucción permite que el dato entrado desde el teclado sea capturado y almacenado en la variable correspondiente, su formato completo es:
?
scanf ("formato", var1, var2, ..., varN)
"formato": En formato se especifica qué tipo de datos se quieren leer.

En scanf sólo van descripciones de formato, nunca texto normal. Si se quiere escribir antes un texto, hay que utilizar printf antes.

Los Modificadores:
En la cadena de "formato" indicaremos, por regla general, los modificadores que harán referencia al tipo de dato de los argumentos. Al igual que en la sentencia printf los modificadores estarán formados por el caracter % seguido de un caracter de conversión. Los argumentos indicados serán, nuevamente, las variables.
%c Un único caracter
%
d Un entero con signo, en base decimal
%
u Un entero sin signo, en base decimal
%
o Un entero en base octal
%
x Un entero en base hexadecimal
%
e Un número real en coma flotante, con exponente
%
f Un número real en coma flotante, sin exponente
%l
f Un número real double
%
s Una cadena de caracteres
%
p Un puntero o dirección de memoria
Los valores correspondientes a las secuencias % se asignan a las variables var1, var2, hasta varN.

Para usar
scanf, debido a que pertenece a un archivo fisico que se encuentra en el directorio ..\INCLUDE, del directorio de C, hay que escribir al principio del programa la directiva siguiente:
#include <stdio.h>

Secuencias de escape
\n Salto de línea
\t Tabulación
\a Sonido

En el caso mas sencillo dentro del string de control se pone el porciento con el caracter apropiado al tipo de dato y en la lista de variables, una variable ya declarada de ese mismo tipo.

Se debera tener en cuenta siempre lo siguiente:
a) La cantidad de variables de lista de variables debe ser igual en cantidad que los codigos porciento %.
b) Todas las variables de tipo numerico dentro de scanf, no de printf, deberan ser precedidas del signo ampersand (&). Si no se anteponen los ampersands (&), el resultado puede ser desastroso.
c) %s en scanf solo alcanza a capturar de la string hasta el primer espacio en blanco.
Ejemplo:
#include <stdio.h> /* Estándar Input/Output */
main()
          {
            int    x;
            char   c;
            float  y;
            double z;
            printf("\nIngrese un caracter : ");
            scanf("%c", &c);
            printf("\nIngrese un valor int : ");
            scanf("%d", &x);
            printf("\nIngrese un valor float : ");
            scanf("%f", &y);
            printf("\nIngrese un valor double : ");
            scanf("%lf", &z);
            printf("\n\nLos datos que ud. ingreso fueron :\n");
            printf("%c  %d  %e  %e\n\n", c, x, y, z);
         }

Ejemplo:
/* Uso de la sentencia scanf(). */
#include <stdio.h>
int main()
{
            char nombre[20]="";
            unsigned int edad=0;
            printf( "Escriba su nombre: " );
            scanf( "
%s", nombre );
            printf( "Escriba su edad: " );
            scanf("%d",&edad);
            printf( "\nHola
%s. Tienes %d años.\n", nombre, edad );
            return 0;
}