¡Advertencia!
Este tema no ha tenido respuestas en más de un mes. Recuerda que si deseas añadir una nueva debes cumplir con las normas de la web.
Bueno amigos.
Quiero que me ayuden a encontrar un problema en el siguiente código, ya que lo compilo desde "terminal" en ubuntu y no arranca.
Saludos.

#include<stdio.h>
#include<stdlib.h>

int main (){
int num, a, b, opcion, op1, num3, num4, num5;

a=0;
printf("Ingrese el número: \n");
scanf("%d", &num);
printf("Menú:\n");
printf("1) Primo\n");
printf("2) Palíndromo\n");
printf("3) Abundante\n");
printf("4) Deficiente\n");
printf("5) Perfecto\n");
printf("Ingrese la opción\n");
scanf("%d", &opcion);
switch(opcion) {
case 1:
for(b=1;b<=num;b++) {
  if(num%b==0){
  a++;
}
}
if(a==2) {
    printf("El número es primo");
}
else {
        printf("El número no es primo");
}
break;
}
return 0;
}
¿El compilador no da ningún error? Es útil para saber donde están los problemas. Por otro lado, una cosa también muy útil es indentar, es deccir, tabular el código.


#include<stdio.h>
#include<stdlib.h>

int main ()
{
	int num, a, b, opcion, op1, num3, num4, num5;

	a=0;
	printf("Ingrese el número: \n");
	scanf("%d", &num);
	printf("Menú:\n");
	printf("1) Primo\n");
	printf("2) Palíndromo\n");
	printf("3) Abundante\n");
	printf("4) Deficiente\n");
	printf("5) Perfecto\n");
	printf("Ingrese la opción\n");
	scanf("%d", &opcion);
	switch(opcion)
	{
		case 1:
		for(b=1;b<=num;b++)
		{
			if(num%b==0)
			{
				a++;
			}      
		}   
		if(a==2) 
		{
			printf("El número es primo");
		}
		else
		{
			printf("El número no es primo");
		}
		
		break;
	}
	return 0;
}


Y ahora vemos has hecho una cosa muy rara con el switch case, creo que no entiendes del todo bien como funciona y seguramente el error tire de ahí. Y por otro lado, tengo serias dudas de que eso detecte si es un número primo, pero tampoco me he puesto a pensarlo mucho.

Ps: No sé programar en C. Así que tampoco te sé decir la sintáxis correcta del switch case.