El lenguaje C tiene varias estructuras de control para bucles y bifurcaciones condicionales.
Argumentos en C pasados por el sistema operativo:
#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:
#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:
//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:
//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); }