El lenguaje C tiene varias estructuras de control para bucles y bifurcaciones condicionales.
Argumentos en C pasados por el sistema operativo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #include<stdio.h> #include<stdlib.h> main( int argc, char **argv[]) { //El %d significa que es un número. //El argc indica el número de argumentos pasados desde el sistema operativo, se le resta uno porque el primer argumento es el nombre del programa printf ( "Número de argumentos pasados %d\n" , argc-1); //El %s significa que es un string, el argv[1] representa el primer argumento pasado al programa desde el sistema operativo printf ( "Argumento 1: %s\n" , argv[1]); //De por si los argumentos pasados son string, si queremos mostrar un argumento que sea número, primero debemos convertirlo //El atoi convierte una cadena a número entero, se puede utilizar otras funciones como atof. printf ( "Argumento 2: %d\n" , atoi (argv[2])); } |
En este caso, si usas la consola linux tenés que compilar el programa:
gcc -o nombre nombre.c
y luego ejecutarlo:
./nombre holamundo 2
El paso de compilación y ejecución es el mismo para los siguientes ejemplos.
Ingreso de datos a través del programa en ejecución:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | #include<stdio.h> #include<stdlib.h> //Función principal main ( int argc, char **argv[]) { //EL * representa un puntero, los punteros son variables enteras que almacenan un numero que es una direccion de memoria. //En C, al contrario que en otros lenguajes de programacion, se puede obtener directamente la direccion de memoria de cualquier variable. Esto es posible hacerlo con el operador unario "&" //Declaramos nombre como char char *nombre; //Declaramos edad como tipo entero int edad; //Mostrar texto para ingresar nombre printf ( "Ingrese nombre: " ); //Capturar lo que el usuario escribe, el %s significa string, lo que se ingrese se guarda en nombre scanf ( "%s" , &nombre); //Mostrar texto para ingresar edad printf ( "Ingrese edad: " ); //Capturar lo que el usuario escribe, el %d significa que se ingresará un número, lo que se ingrese se guarda en edad scanf ( "%d" , &edad); //Mostramos los datos ingresados. //El símbolo & se utiliza siempre en varibles usadas con punteros, como pueden ser char, arreglos,etc para poder acceder directamente a su contenido y no a su dirección de memoria. printf ( "\n Nombre %s Edad: %d" ,&nombre, edad); } |
Ejemplo de If, While y Switch:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | //Llamada a librerías #include<stdio.h> #include<stdlib.h> //Función principal main( int argc, char **argv[]) { //Declaramos variables int nro1; int nro2; //Ingresamos dos números, rango inicial y final printf ( "Ingrese numero 1: " ); scanf ( "%d" , &nro1); printf ( "Ingrese numero 2: " ); scanf ( "%d" , &nro2); //Preguntamos si el número 1 es menor al número 2 if (nro1<nro2) { //Bucle While, que va desde el inicio hasta el fin, y lo muestra en pantalla while (nro1<=nro2) { printf ( "Numero: %d" ,nro1); nro1++; } } //Si el número 1 es mayor entonces mostramos en pantalla dicho mensaje else { printf ( "EL NUMERO 2 DEBE SER MAYOR AL PRIMERO" ); } //Utilizaremos la variable nro1 para el ejemplo switch (nro1) { case 0: // Si es 0 entonces mostrar printf ( "La variable es 0" ); break ; default : // Cuando es distinto de cero printf ( "La variable es distinto de 0" ); break ; } } |
Ejemplo de For y vectores:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | //Ingresar 10 números en un programa en ejecución y buscar el mayor de los números. //Llamada a librerías #include<stdio.h> #include<stdlib.h> //Función principal main( int argc, char **argv[]) { //Declaramos variables //En este caso valores tendrá 10 valores posibles, del 0 al 9 int valores[10]; int i; //Bucle for, que va desde el 0 hasta el 9 for (i=0; i < 10; i++) { printf ( "Ingrese numero %d: " ,(i+1)); scanf ( "%d" , &valores[i]); } //Buscamos el mayor de los 10 números ingresados. int aux=valores[0]; for (i=1; i < 10; i++) { if (valores[i]>aux) aux=valores[i]; } //Mostramos el mayor número ingresado printf ( "\nEl mayor es: %d" ,aux); } |