Compilador y depurador C online

Compila y depura C con puntos de interrupción, variables y pasos de GDB en modo Servidor.

Bibliotecas preinstaladas
🚀 1,307,042 ejecuciones totales (34,472 este mes)
Insertar
Salida

Practica C++ con desafíos de código

Resuelve problemas prácticos en este editor: ejecuta las pruebas de ejemplo, envía tu solución y recibe una revisión de código por IA.

Todos los desafíos de C++
Fácil

Rectangle Perimeter

Compute the perimeter of a rectangle from its sides.

Aprenderás AritméticaValores de retorno
BeginnerLearning-pathVariables
Fácil

Distance Between Points

Compute the straight-line distance between two points.

Aprenderás Teorema de PitágorasRaíces cuadradas
BeginnerFunctionsLearning-pathmath
Fácil

Days in a Month

Return how many days a month has, including leap years.

Aprenderás Reglas del calendarioFunciones auxiliares
BeginnerConditionsFunctionsLearning-path
Fácil

Average of Three

Average three whole numbers.

Aprenderás AritméticaDivisión
BeginnerLearning-pathVariables
Fácil

Producto escalar de dos vectores

Multiplica dos vectores elemento a elemento y suma los resultados, la operación central de toda neurona.

Aprenderás VectoresProducto escalar
Redes neuronalesaiaprendizaje automático
Fácil

El mayor de tres

Elige el mayor de tres números sin usar una función máxima incorporada.

Aprenderás ComparacionesCombinar condiciones
BeginnerConditionsLearning-path
Fácil

Verificación de número primo

Determina si un número es primo.

Aprenderás DivisibilidadOptimizar bucles
BeginnerLoopsNumbersStudent-beginner
Fácil

Number Triangle

Build a triangle of increasing numbers.

Aprenderás Filas crecientesContador entre filas
BeginnerLearning-pathNested-loopsPatterns
Fácil

Número de Armstrong

Verifica si un número es igual a la suma de sus dígitos elevados a la cantidad de dígitos.

Aprenderás Extraer dígitosPotencias
BeginnerNumbersStudent-beginner
Fácil

Row Sums

Add up every row of a grid.

Aprenderás Listas 2DBucles anidados
BeginnerGridsLearning-path
Fácil

Min and Max Together

Find the smallest and largest value in one pass.

Aprenderás Una sola pasadaVarios valores de retorno
ArraysBeginnerFunctionsLearning-path
Fácil

Contar pares con una suma

Cuenta los pares de posiciones cuyos valores suman un objetivo dado.

Aprenderás Pares de índicesEvitar contar dos veces
ArraysBeginnerLearning-pathNested-loops

🧩 Acerca de este ejecutor en línea de C

El Ejecutor de C de CodeUtility te permite escribir y ejecutar programas en C directamente en tu navegador - sin necesidad de instalar nada ni configurar un compilador. Está impulsado por un entorno aislado seguro que admite los estándares oficiales de C, incluyendo C89, C99, C11 y la versión más reciente.

Esta herramienta usa un compilador real de C que se ejecuta en la nube para compilar y ejecutar tu código como en un entorno nativo. Puedes probar fragmentos, aprender la sintaxis o practicar escribiendo programas completos con entrada y salida.

Está diseñada para ayudar a estudiantes y desarrolladores a experimentar rápidamente con los fundamentos de C - como tipos de datos, punteros, bucles, funciones, arreglos y estructuras - sin tener que instalar ningún compilador o IDE.

Más que un ejecutor de código

Utiliza un editor de varios archivos, un terminal de ejecución aislado, bibliotecas específicas del entorno, espacios de trabajo persistentes, opciones para compartir y colaboración en tiempo real desde el mismo ejecutor.

¿Cómo se utiliza este ejecutor?

Elige un entorno de ejecución, abre o crea un archivo, escribe el código y selecciona Ejecutar. El resultado aparece en el terminal; los usuarios que han iniciado sesión pueden conservar archivos en un espacio de trabajo, instalar bibliotecas y colaborar mediante elementos compartidos.

  1. Selecciona una versión y edita el archivo actual o abre otro archivo del espacio de trabajo.
  2. Ejecuta el código, introduce datos en el terminal cuando se soliciten y revisa el historial de ejecuciones guardado.
  3. Utiliza bibliotecas, herramientas del espacio de trabajo, opciones para compartir y el chat cuando la tarea requiera más de un fragmento.

💡 Fundamentos de C y ejemplos que puedes probar arriba

1. Declarar variables y constantes

C requiere que declares el tipo de cada variable. Usa #define o const para definir valores de solo lectura.

int age = 30;
double pi = 3.14159;
char grade = 'A';
char name[] = "Alice";
bool isActive = 1; // verdadero

// Constantes
#define MAX_USERS 100
const char* COMPANY = "CodeUtility";

2. Condicionales (if / switch)

Usa if, else if y switch para la toma de decisiones.

int x = 2;
if (x == 1) {
    printf("Uno\n");
} else if (x == 2) {
    printf("Dos\n");
} else {
    printf("Otro\n");
}

switch (x) {
    case 1:
        printf("Uno\n");
        break;
    case 2:
        printf("Dos\n");
        break;
    default:
        printf("Otro\n");
}

3. Bucles

Usa for, while y do-while para repetir.

for (int i = 0; i < 3; i++) {
    printf("%d\n", i);
}

int n = 3;
while (n > 0) {
    printf("%d\n", n);
    n--;
}

4. Arreglos

Los arreglos almacenan múltiples elementos del mismo tipo.

int numbers[3] = {10, 20, 30};
printf("%d\n", numbers[1]);

5. Estructuras (structs)

struct te permite agrupar datos relacionados.

struct Person {
    char name[50];
    int age;
};

struct Person p = {"Alice", 30};
printf("%s tiene %d años\n", p.name, p.age);

6. Entrada/Salida por consola

Usa printf y scanf para la entrada y salida por consola.

char name[50];
printf("Escribe tu nombre: ");
scanf("%s", name);
printf("Hola, %s\n", name);

7. Funciones

Las funciones encapsulan lógica reutilizable. Declara tipo de retorno, nombre y parámetros.

int add(int a, int b) {
    return a + b;
}

printf("%d\n", add(3, 4));

8. Punteros

Usa punteros para almacenar direcciones de memoria y manipular datos de forma indirecta.

int x = 10;
int* ptr = &x;

printf("Valor de x: %d\n", x);
printf("Dirección de x: %p\n", ptr);
printf("Valor desde el puntero: %d\n", *ptr);

*ptr = 20;
printf("x actualizada: %d\n", x);

9. E/S de archivos

Usa fopen, fprintf, fscanf y fclose para operaciones de archivos.

FILE* file = fopen("file.txt", "w");
fprintf(file, "Hola archivo");
fclose(file);

char line[100];
file = fopen("file.txt", "r");
fgets(line, sizeof(line), file);
printf("%s", line);
fclose(file);

10. Manipulación de cadenas

Usa funciones de <string.h> como strlen, strcpy y strcmp.

#include <string.h>

char text[] = "Hola";
char copy[10];

strcpy(copy, text);
printf("Longitud: %lu\n", strlen(copy));
printf("Comparar: %d\n", strcmp(copy, "Hola"));

11. Memoria dinámica

Usa malloc y free para la asignación en el heap.

int* nums = (int*) malloc(3 * sizeof(int));
nums[0] = 1; nums[1] = 2; nums[2] = 3;

for (int i = 0; i < 3; i++) {
    printf("%d ", nums[i]);
}

free(nums);

🐞 Cómo depurar código %{language} online

Usa el depurador %{language} online para encontrar errores de ejecución y lógica sin instalar un compilador o IDE. El modo Servidor compila con símbolos de depuración y ejecuta el programa con GDB.

  1. Añade puntos de interrupción junto a los números de línea.
  2. Selecciona Depurar para compilar y pausar en el primer punto coincidente.
  3. Inspecciona la línea, la pila de llamadas y las variables.
  4. Usa Continuar, Paso por encima, Paso a paso o Salir.
  5. Selecciona Detener para finalizar la sesión.

Empieza con un ejemplo mínimo reproducible y coloca el punto de interrupción antes del comportamiento inesperado.