Você está na página 1de 18

TUTORIAL DE LENGUAJE C

EL LENGUAJE C El lenguaje C es uno de los ms rpidos y potentes que hay hoy en dia. Algunos dicen que est desfasado (ja,ja) y que el futuro es Java. No se si tendr futuro pero est claro que presente si tiene. No hay ms que decir que el sistema operativo Linux est desarrollado en C en su prctica totalidad. As que creo que no slo no perdemos nada aprendiendolo sino que ganamos mucho. Para empezar nos servir como base para aprender C++ e introducirnos en el mundo de la programacin Windows. Si optamos por Linux existe una biblioteca llamada gtk (o librera, como prefieras) que permite desarrollar aplicaciones estilo windows con C. No debemos confundir C con C++, que no son lo mismo. Se podra decir que C++ es una extensin de C. Para empezar en C++ conviene tener una slida base de C. PECULIARIDADES DE C Una de las cosas importantes de C que debes recordar es que es Case Sensitive (sensible a las maysculas o algo as). Es decir que para C no es lo mismo escribir Printf que printf. Conviene indicar tambin que las instrucciones se separan por ";". COMPILADORES DE C Un compilador es un programa que convierte nuestro cdigo fuente en un programa ejecutable (Me imagino que la mayora ya lo sabes, pero ms vale asegurar). El ordenador trabaja con 0 y 1. Si escribiramos un programa en el lenguaje del ordenador nos volveramos locos. Para eso estn lenguajes como el C. Nos permiten escribir un programa de manera que sea fcil entenderlo por una persona (el cdigo fuente). Luego es el compilador el que se encarga de convertirlo al complicado idioma de un ordenador. En la practica a la hora de crear un programa nosotros escribimos el cdigo fuente, en nuestro caso en C, que normalmente ser un fichero de texto normal y corriente que contiene las instrucciones de nuestro programa. Luego se lo pasamos al compilador y este se encarga de convertirlo en un programa. Si tenemos el cdigo fuente podemos modificar el programa tantas veces como queramos (slo tenemos que volver a compilarlo), pero si tenemos el ejecutable final no podremos cambiar nada (realmente s se puede pero es mucho ms complicado y requiere ms conocimientos). Siguiendo la filosofa de mi pgina los compiladores que usaremos sern gratutos. Si vas a programar en Windows te recomiendo usar el

Lcda.. Ayari Franquis

TUTORIAL DE LENGUAJE C
Dev-C++, de fcil instalacin y manejo. Tambin recomiendo usar el DJGPP para MS-Dos y Windows y el GNU C (gcc.gnu.org)para Linux.

Lcda.. Ayari Franquis

TUTORIAL DE LENGUAJE C
EL EDITOR El compilador en s mismo slo es un programa que traduce nuestro cdigo fuente y lo convierte en un ejecutable. Para escribir nuestros programas necesitamos un editor. La mayora de los compiladores al instalarse incorporan ya un editor; es el caso de los conocidos Turbo C, Borland C, Visual C++,... Pero otros no lo traen por defecto. No debemos confundir por tanto el editor con el compilador. Estos editores suelen tener unas caractersticas que nos facilitan mucho el trabajo: permiten compilar y ejecutar el programa directamente, depurarlo (corregir errores), gestionar complejos proyectos,... Si nuestro compilador no trae editor la solucin ms simple en MS-Dos puede ser usar el edit, en windows el notepad. Pero no son ms que editores sin ninguna otra funcionalidad. Otra posibilidad es un entorno de desarrollo llamado RHIDE, un programa muy til que automatiza muchas de las tareas del programador (del estilo del Turbo C y Turbo Pascal). Si queremos una herramienta muy avanzada podemos usar Emacs, que es un editor muy potente, aunque para algunos puede parecer muy complicado (valientes y a por ello). Estos dos programas estn disponibles tanto en Linux como en MS-Dos. PRIMER PROGRAMA En un alarde de originalidad vamos a hacer nuestro primer programa: hola mundo. Nadie puede llegar muy lejos en el mundo de la programacin sin haber empezado su carrera con este original y funcional programa. #include <stdio.h> void main() { printf("Hola mundo\n"); getch(); } Vamos ahora a comentar el programa lnea por lnea (Esto no va a ser ms que una primera aproximacin).
#include <stdio.h>

#include es lo que se llama una directiva. Sirve para indicar al compilador que incluya otro archivo. Cuando en compilador se encuentra con esta directiva la sustituye por el archivo indicado. En este caso es el archivo stdio.h que es donde est definida la funcin printf
void main()

Lcda.. Ayari Franquis

TUTORIAL DE LENGUAJE C
Es la funcin principal del programa. Todos los programas de C deben tener una funcin llamada main. Es la que primero se ejecuta. Se utiliza la definicin 'void main()', que no necesita devolver ningn valor.
{ Son las llaves que indican el comienzo de una funcin, en este caso la funcin main. /* Aqu va el cuerpo del programa */ Esto es un comentario, no se ejecuta. Sirve para describir el programa. Conviene acostumbrarse a comentar los programas. Un comentario puede ocupar ms de una lnea. Por ejemplo el comentario: /* Este es un comentario que ocupa dos filas */ printf( "Hola mundo\n" ); Aqu es donde por fin el programa hace algo que podemos ver al ejecutarlo. La funcin printf muestra un mensaje por la pantalla. Al final del mensaje "Hola mundo" aparece el smbolo '\n'; este hace que despus de imprimir el mensaje se pase a la lnea siguiente.

Fjate en el ";" del final. Es la forma que se usa en C para separar una instruccin de otra. Se pueden poner varias en la misma lnea siempre que se separen por el punto y coma. } ...y cerramos llaves con lo que termina el programa. Todos los programas finalizan cuando se llega al final de la funcin main. INSTRUCCIONES DE ENTRADA SALIDA PRINTF : IMPRIMIR EN PANTALLA
Siempre he credo que cuando empiezas con un nuevo lenguaje suele gustar el ver los resultados, ver que nuestro programa hace 'algo'. Por eso creo que el curso debe comenzar con la funcin printf, que sirve para sacar informacin por pantalla. Para utilizar la funcin printf en nuestros programas debemos incluir la directiva: #include <stdio.h> al principio de programa. Como hemos visto en el programa hola mundo.

Lcda.. Ayari Franquis

TUTORIAL DE LENGUAJE C
Si slo queremos imprimir una cadena basta con hacer (no olvides el ";" al final): printf( "Cadena" ); Esto resultar por pantalla: Cadena Lo que pongamos entre las comillas es lo que vamos a sacar por pantalla. Si volvemos a usar otro printf, por ejemplo: #include <stdio.h> Void main() { printf( "Cadena" ); printf( "Segunda" ); getch(); } Obtendremos:

CadenaSegunda
Este ejemplo nos muestra cmo funciona printf. Para escribir en la pantalla se usa un cursor que no vemos. Cuando escribimos algo el cursor va al final del texto. Cuando el texto llega al final de la fila, lo siguiente que pongamos ir a la fila siguiente. Si lo que queremos es sacar cada una en una lnea deberemos usar "\n". Es el indicador de retorno de carro. Lo que hace es saltar el cursor de escritura a la lnea siguiente: #include <stdio.h> void main() { printf( "Cadena\n" ); printf( "Segunda" ); getch(); } y tendremos:

Cadena Segunda
Tambin podemos poner ms de una cadena dentro del printf:

printf( "Primera cadena" "Segunda cadena" );

Lcda.. Ayari Franquis

TUTORIAL DE LENGUAJE C
Lo que no podemos hacer es meter cosas entre las cadenas:

printf( "Primera cadena" texto en medio "Segunda cadena" );


Esto no es vlido. Cuando el compilador intenta interpretar esta sentencia se encuentra "Primera cadena" y luego texto en medio, no sabe qu hacer con ello y da un error. Pero qu pasa si queremos imprimir el smbolo " en pantalla? Por ejemplo imaginemos que queremos escribir:

Esto es "extrao"
Si para ello hacemos:

printf( "Esto es "extrao"" );


Obtendremos unos cuantos errores. El problema es que el smbolo " se usa para indicar al compilador el comienzo o el final de una cadena. As que en realidad le estaramos dando la cadena "Esto es", luego extrao y luego otra cadena vaca "". Pues resulta que printf no admite esto y de nuevo tenemos errores. La solucin es usar \". Veamos:

printf( "Esto es \"extrao\"" );


Esta vez todo ir como la seda. Como vemos la contrabarra '\' sirve para indicarle al compilador que escriba caracteres que de otra forma no podramos. Esta contrabarra se usa en C para indicar al compilador que queremos meter smbolos especiales. Pero Y si lo que queremos es usar '\' como un carcter normal y poner por ejemplo Hola\Adis? Pues muy fcil, volvemos a usar '\':

printf( "Hola\\Adis" );
Y esta doble '\' indica a C que lo que queremos es mostrar una '\'.

Clrscr: Borrar la pantalla (DOS)


Ahora ya slo nos falta saber cmo se borra la pantalla. Pues es tan fcil como usar:

clrscr()
(clear screen, borrar pantalla). Esta funcin n solo borra la pantalla, sino que adems sita el cursor en la posicin (1, 1), en la esquina superior izquierda. #include <stdio.h>

Lcda.. Ayari Franquis

TUTORIAL DE LENGUAJE C
#include <conio.h> void main() { clrscr(); printf( "Hola" ); getch(); }

Scanf
El uso de scanf es muy similar al de printf con una diferencia, nos da la posibilidad de que el usuario introduzca datos en vez de mostrarlos. No nos permite mostrar texto en la pantalla, por eso si queremos mostrar un mensaje usamos un printf delante. Un ejemplo: #include <stdio.h> void main() { int num; printf( "Introduce un nmero " ); scanf( "%i", &num ); printf( "Has tecleado el nmero %i\n", num ); getch(); } Primero vamos a ver unas nota de esttica, para hacer los programas un poco ms elegantes. Parece una tontera, pero los pequeos detalles hacen que un programa gane mucho. El scanf no mueve el cursor de su posicin actual, as que en nuestro ejemplo queda: Introduce un nmero _ cursor */ /* La barra horizontal indica dnde esta el

Esto es porque en el printf no hemos puesto al final el smbolo de salto de lnea '\n'. Adems hemos dejado un espacio al final de Introduce un nmero: para que as cuando tecleemos el nmero no salga pegado al mensaje. Si no hubisemos dejado el espacio quedara as al introducir el nmero 120 (es un ejemplo): Introduce un nmero120 Bueno, esto es muy interesante pero vamos a dejarlo y vamos al grano. Veamos cmo funciona el scanf. Lo primero nos fijamos que hay una cadena entre comillas. Esta es similar a la de printf, nos sirve para indicarle al compilador qu tipo de datos estamos pidiendo. Como en este caso es un integer usamos %i. Despus de la coma tenemos la variable donde almacenamos el dato, en este caso 'num'. Fjate que en el scanf la variable 'num' lleva delante el smbolo &, este es muy importante, sirve para indicar al compilador cual es la direccin (o

Lcda.. Ayari Franquis

TUTORIAL DE LENGUAJE C
posicin en la memoria) de la variable. Por ahora no te preocupes por eso, ya volveremos ms adelante sobre el tema. Podemos preguntar por ms de una variable a la vez en un slo scanf, hay que poner un %i por cada variable: #include <stdio.h> void main() { int a, b, c; printf( "Introduce tres nmeros: " ); scanf( "%i %i %i", &a, &b, &c ); printf( "Has tecleado los nmeros %i %i %i\n", a, b, c ); getch(); } De esta forma cuando el usuario ejecuta el programa debe introducir los tres datos separados por un espacio. Tambin podemos pedir en un mismo scanf variables de distinto tipo: #include <stdio.h> void main() { int a; float b; printf( "Introduce dos nmeros: " ); scanf( "%i %f", &a, &b ); printf( "Has tecleado los nmeros %i %f\n", a, b ); getch(); } A cada modificador (%i, %f) le debe corresponder una variable de su mismo tipo. Es decir, al poner un %i el compilador espera que su variable correspondiente sea de tipo int. Si ponemos %f espera una variable tipo float.

Sentencias de condicin
Hasta aqu hemos visto cmo podemos repetir un conjunto de instrucciones las veces que deseemos. Pero ahora vamos a ver cmo podemos controlar totalmente el flujo de un programa. Dependiendo de los valores de alguna variable se tomarn unas acciones u otras. Empecemos con la sentencia if.

If

Lcda.. Ayari Franquis

TUTORIAL DE LENGUAJE C
La palabra if significa si (condicional), pero supongo que esto ya lo sabas. Su formato es el siguiente: if ( condicin ) { instrucciones a ejecutar } Cuando se cumple la condicin entre parntesis se ejecuta el bloque inmediatamente siguiente al if (bloque instrucciones a ejecutar). En el siguiente ejemplo tenemos un programa que nos pide un nmero, si ese nmero es 10 se muestra un mensaje. Si no es 10 no se muestra ningn mensaje: #include <stdio.h> void main() { int num; printf( "Introduce un nmero " ); scanf( "%i", &num ); if (num==10) { printf( "El nmero es correcto\n" ); } } Como siempre, la condicin es falsa si es igual a cero. Si es distinta de cero ser verdadera. If - Else El formato es el siguiente: if ( condicin ) { bloque que se ejecuta si se cumple la condicin } else { bloque que se ejecuta si no se cumple la condicin } En el if si no se cumpla la condicin no se ejecutaba el bloque siguiente y el programa segua su curso normal. Con el if else tenemos un bloque adicional que slo se ejecuta si no se cumple la condicin. Veamos un ejemplo: #include <stdio.h> void main() {

Lcda.. Ayari Franquis

TUTORIAL DE LENGUAJE C
int a; printf( "Introduce un nmero " ); scanf( "%i", &a ); if ( a==8 ) { printf ( "El nmero introducido era un ocho.\n" ); } else { printf ( "Pero si no has escrito un ocho!!!"\n" ); } } Al ejecutar el programa si introducimos un 8 se ejecuta el bloque siguiente al if y se muestra el mensaje: El nmero introducido era un ocho. Si escribimos cualquier otro nmero se ejecuta el bloque siguiente al else mostrndose el mensaje: Pero si no has escrito un ocho!!! If else if Se pueden poner if else anidados si se desea: #include <stdio.h> void main() { int a; printf( "Introduce un nmero " ); scanf( "%i", &a ); if ( a<10 ) { printf ( "El nmero introducido era menor de 10.\n" ); } else if ( a>10 && a<100 ) { printf ( "El nmero est entre 10 y 100"\n" ); } else if ( a>100 ) { printf( "El nmero es mayor que 100\n" ); } printf( "Fin del programa\n" ); }

Lcda.. Ayari Franquis

TUTORIAL DE LENGUAJE C
El smbolo && de la condicin del segundo if es un AND (Y). De esta forma la condicin queda: Si a es mayor que 10 Y a es menor que 100. Y as todos los if else que queramos. Si la condicin del primer if es verdadera se muestra el mensaje El nmero introducido era menor de 10 y se saltan todos los if-else siguientes (se muestra Fin del programa). Si la condicin es falsa se ejecuta el siguiente else-if y se comprueba si a est entre 10 y 100. Si es cierto se muestra El nmero est entre 10 y 100. Si no es cierto se evala el ltimo else-if.

Switch
El formato de la sentencia switch es: switch ( variable ) { case opcin 1: cdigo a ejecutar si la variable tiene el valor de la opcin 1 break; case opcin 2: cdigo a ejecutar si la variable tiene el valor de la opcin 2 break; default: cdigo que se ejecuta si la variable tiene un valor distinto a los anteriores break; } Vamos a ver cmo funciona. La sentencia switch sirve par elegir una opcin entre varias disponibles. Aqu no tenemos una condicin que se debe cumplir sino el valor de una variable. Dependiendo del valor se cumplir un caso u otro. Vamos a ver un ejemplo de mltiples casos con if-else y luego con switch: #include <stdio.h> void main() { int num; printf( "Introduce un nmero " ); scanf( "%i", &num ); if ( num==1 ) printf ( "Es un 1\n" ); else if ( num==2 ) printf ( "Es un 2\n" ); else if ( num==3 ) printf ( "Es un 3\n" ); else printf ( "No era ni 1, ni 2, ni 3\n" );

Lcda.. Ayari Franquis

TUTORIAL DE LENGUAJE C
} Ahora con switch: #include <stdio.h> void main() { int num; printf( "Introduce un nmero " ); scanf( "%i", &num ); switch( num ) { case 1: printf( "Es un 1\n" ); break; case 2: printf( "Es un 2\n" ); break; case 3: printf( "Es un 3\n" ); break; default: printf( "No es ni 1, ni 2, ni 3\n" ); } } Como vemos el cdigo con switch es ms cmodo de leer. Vamos a ver qu pasa si nos olvidamos algn break: #include <stdio.h> void main() { int num; printf( "Introduce un nmero " ); scanf( "%i", &num ); switch( num ) { case 1: printf( "Es un 1\n" ); /* Nos olvidamos el break que debera haber aqu */ case 2: printf( "Es un 2\n" ); break; default: printf( "No es ni 1, ni 2, ni 3\n" ); } }

Lcda.. Ayari Franquis

TUTORIAL DE LENGUAJE C
Si al ejecutar el programa escribimos un dos tenemos el mensaje Es un dos. Todo correcto. Pero si escribimos un uno lo que nos sale en pantalla es: Es un 1 Es un 2 Por qu? Pues porque cada caso empieza con un case y acaba donde hay un break. Si no ponemos break aunque haya un case el programa sigue hacia adelante. Por eso se ejecuta el cdigo del case 1 y del case 2. Puede parecer una desventaja pero a veces es conveniente. Por ejemplo cuando dos case deben tener el mismo cdigo. Si no tuviramos esta posibilidad tendramos que escribir dos veces el mismo cdigo. (Vale, vale, tambin podramos usar funciones, pero si el cdigo es corto puede ser ms conveniente no usar funciones. Ya hablaremos de eso ms tarde.). Sin embargo switch tiene algunas limitaciones, por ejemplo no podemos usar condiciones en los case. El ejemplo que hemos visto en el apartado if-else-if no podramos hacerlo con switch.

Bucles
Los bucles nos ofrecen la solucin cuando queremos repetir una tarea un nmero determinado de veces. Supongamos que queremos escribir 100 veces la palabra hola. Con lo que sabemos hasta ahora haramos: #include <stdio.h> void main() { printf( "Hola\n"); printf( "Hola\n"); printf( "Hola\n"); printf( "Hola\n"); printf( "Hola\n"); ... (y as hasta 100 veces) } Menuda locura! Y si queremos repetirlo ms veces nos quedara un programa de lo ms largo. Sin embargo usando un bucle for el programa quedara: #include <stdio.h> void main() { int i; for ( i=0 ; i<100 ; i++ ) { printf( "Hola\n" ); } }

Lcda.. Ayari Franquis

TUTORIAL DE LENGUAJE C
Con lo que tenemos un programa ms corto.

El bucle For
El formato del bucle for es el siguiente: for( dar valores iniciales ; condiciones ; incrementos ) { conjunto de intrucciones a ejecutar en el bucle } Vamos a verlo con el ejemplo anterior: ... for ( i=0 ; i<100 ; i++ ) ... En este caso asignamos un valor inicial a la variable i. Ese valor es cero. Esa es la parte de dar valores iniciales. Luego tenemos i<100. Esa es la parte condiciones. En ella ponemos la condicin es que i sea menor que 100, de modo que el bucle se ejecutar mientras i sea menor que 100. Es decir, mientras se cumpla la condicin. Luego tenemos la parte de incrementos, donde indicamos cunto se incrementa la variable. Como vemos, el for va delante del grupo de instrucciones a ejecutar, de manera que si la condicin es falsa, esas instrucciones no se ejecutan ni una sola vez. Cuidado: No se debe poner un ";" justo despus de la sentencia for, pues entonces sera un bucle vaco y las instrucciones siguientes slo se ejecutaran una vez. Veamoslo con un ejemplo: #include <stdio.h> void main() { int i; for ( i=0 ; i<100 ; i++ ); punto y coma */ { printf( "Hola\n" ); } } Este programa slo escribir en pantalla Hola una sola vez. Tamben puede suceder que quieras ejecutar un cierto nmero de veces una sla instruccin (como sucede en nuestro ejemplo). Entonces no necesitas las llaves "{}": #include <stdio.h>

/*

Cuidado

con

este

Lcda.. Ayari Franquis

TUTORIAL DE LENGUAJE C
void main() { int i; for ( i=0 ; i<100 ; i++ ) printf( "Hola\n" ); } o tambin: for ( i=0 ; i<100 ; i++ ) printf( "Hola\n" ); Sin embargo, yo me he encontrado muchas veces que es mejor poner las llaves aunque slo haya una instruccin; a veces al aadir una segunda instruccin ms tarde se te olvidan las comillas y no te das cuenta. Parece una tontera, pero muchas veces, cuando programas, son estos los pequeos fallos los que te vuelven loco. En otros lenguajes, como Basic, la sentencia for es muy rgida. En cambio en C es muy flexible. Se puede omitir cualquiera de las secciones (inicializacin, condiciones o incrementos). Tambin se pueden poner ms de una variable a inicializar, ms de una condicin y ms de un incremento. Por ejemplo, el siguiente programa sera perfectamente correcto: #include <stdio.h> void main() { int i, j; for( i=0, j=5 ; i<10 ; i++, j=j+5 ) { printf( "Hola " ); printf( "Esta es la lnea %i", i ); printf( "j vale = %i\n", j ); } } Como vemos en el ejemplo tenemos ms de una variable en la seccin de inicializacin y en la de incrementos. Tambin podamos haber puesto ms de una condicin. Los elementos de cada seccin se separan por comas. Cada seccin se separa por punto y coma. Ms tarde veremos cmo usar el for con cadenas.

While
El formato del bucle while es es siguiente: while ( condicin ) { bloque de instrucciones a ejecutar }

Lcda.. Ayari Franquis

TUTORIAL DE LENGUAJE C
While quiere decir mientras. Aqu se ejecuta el bloque de intrucciones mientras se cumpla la condicin impuesta en while. Vamos a ver un ejemplo: #include <stdio.h> void main() { int contador = 0; while ( contador<100 ) { contador++; printf( "Ya voy por el %i, parar enseguida.\n", contador ); } } Este programa imprime en pantalla los valores del 1 al 100. Cuando i=100 ya no se cumple la condicin. Una cosa importante, si hubesemos cambiado el orden de las instrucciones a ejecutar: ... printf( "Ya voy por el %i, parar enseguida.\n", contador ); contador++; ... En esta ocasin se imprimen los valores del 0 al 99. Cuidado con esto, que a veces produce errores difciles de encontrar.

Do While
El formato del bucle do-while es: do { instrucciones a ejecutar } while ( condicin ); La diferencia entre while y do-while es que en este ltimo, la condicin va despues del conjunto de instrucciones a ejecutar. De esta forma, esas instrucciones se ejecutan al menos una vez. Su uso es similar al de while.

Lcda.. Ayari Franquis

TUTORIAL DE LENGUAJE C
EJERCICIOS RESUELTOS Escriba un programa que calcule el rea de un tringulo rectngulo, dada la altura y la base. /* Area de un triangulo rectangulo */ #include <stdio.h> #include <conio.h> main() { float altura, base; double area; printf("\nBase del triangulo = "); scanf("%f",&base); printf("\nAltura del triangulo = "); scanf("%f",&altura); area= 0.5 * (double) altura * base; printf("\nArea = %.2f",area); }

Escriba un programa que halle el menor de dos nmeros pedidos al usuario. /* Calculo del menor de dos nmeros dados */ #include <stdio.h> void main() { int menor, numero1, numero2; printf("\nEscriba el primer nmero y pulso INTRO: "); scanf("%d",&numero1); printf("\nEscriba el segundo nmero y pulso INTRO: "); scanf("%d",&numero2); /* la sentencia if (Estructura Condicional)*/ if (numero1 < numero2) menor=numero1; else menor=numero2; numero2; */ printf("\nEl menor de %d y %d es %d",numero1, numero2, menor); Getch(); }

Lcda.. Ayari Franquis

TUTORIAL DE LENGUAJE C
PROGRAMA QUE SUMA LOS CINCO PRIMEROS NMEROS NATURALES.
#include <stdio.h> #include <conio.h> void main(void) { int i=1, suma=0; /*Ciclo Mientras */ while (i<=5) { /* se ejecuta el bloque mientras i<=5 */ suma+=i; /* equivale a suma=suma+i; */ ++i; /* equivale a i=i+1; */ }printf("\n suma = %d ", suma); Getch(); }

Escriba un programa que muestre una tabla de conversiones de temperatura de grados Farenheit a grados Celsius, de 0F a 300F de 20 en 20F. /* Sistema de temperaturas */ #include <stdio.h> void main() { int i; float c; for (i=0;i<=300;i+=20) { c=(5./9)*(i-32); printf("%3d grados Farenheit equivalen a %4.4f grados Celsius\n",i,c); } Getch(); }

Lcda.. Ayari Franquis

Você também pode gostar