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 programaprintf("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 operativoprintf("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 principalmain (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 charchar *nombre;//Declaramos edad como tipo enteroint edad;//Mostrar texto para ingresar nombreprintf("Ingrese nombre: ");//Capturar lo que el usuario escribe, el %s significa string, lo que se ingrese se guarda en nombrescanf("%s", &nombre);//Mostrar texto para ingresar edadprintf("Ingrese edad: ");//Capturar lo que el usuario escribe, el %d significa que se ingresará un número, lo que se ingrese se guarda en edadscanf("%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 principalmain(int argc, char **argv[]){//Declaramos variablesint nro1;int nro2;//Ingresamos dos números, rango inicial y finalprintf("Ingrese numero 1: ");scanf("%d", &nro1);printf("Ingrese numero 2: ");scanf("%d", &nro2);//Preguntamos si el número 1 es menor al número 2if(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 mensajeelse{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 principalmain(int argc, char **argv[]){//Declaramos variables//En este caso valores tendrá 10 valores posibles, del 0 al 9int 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);} |
