Viernes 8 de Noviembre de 2024, 17:50
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Problema Con Un Case
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Problema Con Un Case (Leído 1126 veces)
eruelas
Miembro activo
Mensajes: 69
Nacionalidad:
Problema Con Un Case
«
en:
Martes 1 de Abril de 2008, 17:02 »
0
KISIERA SABER PORK ME MARCA K EL CASE ESTA FUERA DEL SWITCH
Y ME MARKA ERROR DE SINTAXIS NO SE SI ME PUEDAN AYUDAR GRACIAS DE ANTEMANO
EI: Junto mensajes y pongo el codigo entre etiquetas code.
Código: Text
#include<conio.h>
#include<stdio.h>
#include<string.h>
void main()
{
textbackground(1);
textcolor(BLACK);
clrscr();
int a,b,c,d,n,f,x,r,m,y,mat[10][10],mat1[10][6],suma[10][10],resta[10][10],opcion;
char cad[50],rev[50];
do
{
clrscr();
gotoxy(38,12);
printf("EXAMEN ");
gotoxy(1,19);
printf("(*_*)(*_*)(*_*)(*_*)(*_*)(*_*)(*_*)(*_*)(*_*)(*_*)(*_*)(*_*)(*_*)");
gotoxy(30,23);
printf("1.Suma De Matrices");
gotoxy(30,25);
printf("2.Resta De Matrices ");
gotoxy(30,27);
printf("3.Palindromo");
gotoxy(30,29);
printf("4.Salir ");
gotoxy(30,47);
printf("Opcion: ");
scanf("%i",&opcion);
switch (opcion)
{
case 1:textbackground(BLUE);
clrscr();
gotoxy(30,12);
printf("Suma De Matrices");
gotoxy(8,16);
printf("(*_*)(*_*)(*_*)(*_*)(*_*)(*_*)(*_*)(*_*)(*_*)(*_*)(*_*)(*_*)(*_*)");
printf("cuantos renglones y columnas quieres para las matrizes (max 5x5 y separados por un espacio): ");
scanf("%i%i",&m,&n);
clrscr();
if(m>5)
{
gotoxy(5,7);
printf("Error: el renglon no debe ser mayor a 5");
}
if(n>5)
{
gotoxy(5,9);
printf("Error: la columna no debe ser mayor a 5");
}
}
while(m>5||n>5);
for(f=0;f<m;f++)
for(c=0;c<n;c++)
{
printf("dame el numero del %iø renglon y de la %iø columna de la primera matriz: ",f+1,c+1);
scanf("%i",&mat[f][c]);
}
for(f=0;f<m;f++)
{
for(c=0;c<n;c++)
printf("%i\t",mat[f][c]);
printf("\n\n");
}
for(f=0;f<m;f++)
for(c=0;c<n;c++)
{
printf("dame el numero del %iø renglon y de la %iø columna de la segunda matriz: ",f+1,c+1);
scanf("%i",&mat1[f][c]);
}
for(f=0;f<m;f++)
{
for(c=0;c<n;c++)
printf("%i\t",mat1[f][c]);
printf("\n\n");
}
for(f=0;f<m;f++)
for(c=0;c<n;c++)
resta[f][c]=mat[f][c]-mat1[f][c];
printf("la matriz restada es:\n");
for(f=0;f<m;f++)
{
for(c=0;c<n;c++)
printf("%i\t",resta[f][c]);
printf("\n\n");
}
getch();
break;
case 2:textbackground(RED);
clrscr();
gotoxy(30,12);
printf("Resta De Matrices");
gotoxy(8,16);
printf("(*_*)(*_*)(*_*)(*_*)(*_*)(*_*)(*_*)(*_*)(*_*)(*_*)(*_*)(*_*)(*_*)");
gotoxy(30,24);
printf ("Introduce el valor de m: ");
scanf("%i",&m);
printf("Introduce el valor de n: ");
scanf("%i",&n),
clrscr();
for (f=0;f<m;f++)
{
for (c=0;c<n;c++)
{
printf(" Introdusca los valores para la matriz A en la posicion %d y %d : ",f,c);
scanf("%d",&mat[f][c]),y++;
}
}
clrscr();
for(f=0;f<m;f++)
{
for(c=0;c<n;c++)
{
printf("\n Introdusca los valores para la matriz B en la posicion %d y %d : ",f,c);
scanf("%d",&mat1[f][c]);
}
}
clrscr();
printf("El resultado de la resta es: ");
y=15;
for (f=0;f<m;f++)
{
x=8;
for (c=0;c<n;c++)
{
resta[f][c]=mat[f][c]-mat1[f][c];
gotoxy(x,y);
printf(" %d",resta[f][c]);
x+=6;
}
y++;
}
getch();
break;
case 3: textbackground(BLACK);
clrscr();
gotoxy(30,12);
printf("Palindromo");
gotoxy(8,16);
printf("(*_*)(*_*)(*_*)(*_*)(*_*)(*_*)(*_*)(*_*)(*_*)(*_*)(*_*)(*_*)(*_*)");
gotoxy(24,18);
printf("Dame una cadena: ");
gets(cad);
fflush(stdin);
strlwr(cad);
a=strlen(cad);
for(c=0;c<a;c++)
{
for(d=0;d<a;d++)
{
if(cad[d]==' ')
{
cad[d]=cad[d+1];
cad[d+1]=' ';
}
}
}
for(d=0;d<a;d++)
{
if(cad[d]==' ')
{
cad[d]=0;
}
}
a=strlen(cad);
for(d=0;d<a;d++)
{
rev[d]=cad[a-d-1];
}
rev[d]='\0';
b=strcmp(cad,rev);
if(b==0)
printf("Es un palindromo");
else
printf("No es palindromo");
getch();
break;
}
}
while(opcion<4);
getch();
}
Tweet
ProfesorX
Moderador
Mensajes: 796
Nacionalidad:
Re: Problema Con Un Case
«
Respuesta #1 en:
Martes 1 de Abril de 2008, 21:11 »
0
Pues te sobra un parentesis y un while, en el primer case:
Código: Text
}
while(m>5||n>5);
Aunque sospecho que lo que quieres es validar la entrada, en cuyo caso te falta un "do {" y deberias tener algo como:
Código: Text
do
{
printf("cuantos renglones y columnas quieres para las matrizes (max 5x5 y separados por un espacio): ");
scanf("%i%i",&m,&n);
clrscr();
if (m>5)
{
gotoxy(5,7);
printf("Error: el renglon no debe ser mayor a 5");
}
if (n>5)
{
gotoxy(5,9);
printf("Error: la columna no debe ser mayor a 5");
}
}
while (m>5||n>5);
Aunque recomendaria que validaras dato por dato, y no los dos al mismo tiempo, porque si al validar uno por uno, si el usuario solo se equivoca en uno, repites ese uno, en cambio, validando los dos al mismo tiempo, si se equivoco en el primero y no en el segundo, haces que vuelva a leer los dos, y tal vez la siguiente se equivoque en el segundo y no en el primero.
Otro consejo, indenta en tu codigo, tus condiciones y tus ciclos, eso hace que sea mas facil ver a simple vista si omites o escribes de mas un corchete o alguna otra cosa, como en este caso.
Saludos
NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================
eruelas
Miembro activo
Mensajes: 69
Nacionalidad:
Re: Problema Con Un Case
«
Respuesta #2 en:
Miércoles 2 de Abril de 2008, 16:19 »
0
sale gracias ya lo tengo heheh aunk me kitaron puntos por no usar strtok
jejeje pero me funciono a la perfeccion grx
[/size]
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Problema Con Un Case