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);
}