Jueves 14 de Noviembre de 2024, 23:14
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
) »
Error
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Error (Leído 814 veces)
badyalberto
Miembro activo
Mensajes: 77
Error
«
en:
Lunes 26 de Enero de 2009, 23:45 »
0
Código: Text
#include<stdio.h>
int mostrarmenu();
int calculrectangle(int,int,char);
int calculrectanglebuit(int,int,char);
int calculquadrat(int,char);
int calculquadratbuit(int,char);
int calcultriangle(int,char);
int calcultrianglebuit(int,char);
int main()
{
int fin=0;
int op,m,n;
char carac;
do
{
op = mostrarmenu();
switch(op)
{
case 1:
printf("Introdueix el tamany de un costat: n");
scanf("%d", &m);
printf("Introduiex el tamany de l'altre costat: n");
scanf("%d", &n);
fflush(stdin);
printf("Introdueix el caracter per fer la figura: n");
scanf ("%c", &carac);
calculrectangle(m,n,carac);
break;
case 2:
printf("Introdueix el tamany de un costat: n");
scanf("%d", &m);
printf("Introduiex el tamany de l'altre costat: n");
scanf("%d", &n);
fflush(stdin);
printf("Introdueix el caracter per fer la figura: n");
scanf ("%c", &carac);
calculrectanglebuit(m,n,carac);
break;
case 3:
printf("Introdueix el tamany del costat: n");
scanf("%d", &m);
fflush(stdin);
printf("Introdueix el caracter per fer la figura: n");
scanf ("%c", &carac);
calculquadrat(m,carac);
break;
case 4:
printf("Introdueix el tamany del costat: n");
scanf("%d", &m);
fflush(stdin);
printf("Introdueix el caracter per fer la figura: n");
scanf ("%c", &carac);
calculquadratbuit(m,carac);
break;
case 5:
printf("Introdueix l'alcada: n");
scanf("%d", &m);
fflush(stdin);
printf("Introdueix el caracter per fer la figura: n");
scanf ("%c", &carac);
calcultriangle(m,carac);
break;
case 6:
printf("Introdueix l' alcada: n");
scanf("%d", &m);
fflush(stdin);
printf("Introdueix el caracter per fer la figura: n");
scanf ("%c", &carac);
calcultrianglebuit(m,carac);
break;
case 7:
fin=1;
break;
default:
printf("Opcio incorrecten");
}
if (!fin)
{
printf("nn");
getchar();
getchar();
}
}while(!fin);
}
int mostrarmenu ()
{
int op;
printf("Programa que dibuixa la figura que has escollit: n");
printf("n");
printf("n");
printf("1) Rectangle: n");
printf("2) Rectangle buit: n");
printf("3) Quadrat: n");
printf("4) Quadrat buit: n");
printf("5) Triangle: n");
printf("6) Trinangle buit: n");
printf("7) Salir: n");
do
{
printf("Escull una opcio: ");
scanf("%d", &op);
if ((op != 1) && (op !=2) && (op != 3) && (op != 4) && (op != 5) && (op != 6) && (op != 7))
{
printf("Opcio incorrecte n");
}
}while (op < 1 || op > 7);
return op;
}
int calculrectangle (int m, int n, char carac)
{
int i,j;
for(i=1;i<=n;i++)
{
for(j=1;i<=m;j++)
{
printf("%c",carac);
}
printf("n");
}
}
int calcurrectanglebuit(int m, int n, char carac)
{
int i,j,espai;
for (i=1;i<=n;i++)
{
if (i==1 || i==n)
{
for(j=1;j<=m;j++)
{
printf("%c",carac);
}
}
else
{
printf("%c",carac);
for (espai=1;espai<=n-2;espai++)
{
printf(" ");
}
printf("%c",carac);
}
}
}
int calculquadrat(int m, char carac)
{
int i,j;
for (i=1; i<=m;i++)
{
for (j=1;j<=m;j++)
{
printf("%c",carac);
}
printf("n");
}
}
int calculquadratbuit(int m, char carac)
{
int i,j,espai;
for (i=1; i<=m;i++)
{
if(i==1 || i==m)
{
for (j=1;j<=m;j++);
{
printf("%c",carac);
}
}
else
{
printf("%c",carac);
for( espai=1;espai<=m-2;espai++)
{
printf(" ");
}
printf("%c",carac);
}
printf("n");
}
}
int calcultriangle(int m, char carac)
{
int i,j,espai;
for (i=1;i<=m;i++)
{
for(espai=1;espai<=m-i;espai++)
{
printf(" ");
}
for (j=1;j<=i*2-1;j++)
{
printf("%c",carac);
}
printf("n");
}
}
int calcultrianglebuit (int m, char carac)
{
int i,j,espai;
for (i=1; i<=m;i++);
{
for (espai=1; espai<=m-i;espai++);
{
printf(" ");
}
for (j=1;j<=m*2-1;j++);
{
if (i==1 || i==m)
{
printf("%c",carac);
}
else
{
printf(" ");
}
}
printf("n");
}
}
El calcul trianglebuit no me printa nada :S
Tweet
m0skit0
Miembro de PLATA
Mensajes: 2337
Nacionalidad:
Re: Error
«
Respuesta #1 en:
Martes 27 de Enero de 2009, 08:58 »
0
Primero, no sé por qué usas funciones que devuelven
int
cuando no devuelves nada. Usa
void
.
En cuanto a tu cuestión, ojo dónde pones los
;
Código: C
int
calcultrianglebuit
(
int
m
,
char
carac
)
{
int
i
,
j
,
espai
;
for
(
i
=
1
;
i
<=
m
;
i
++
)
;
{
for
(
espai
=
1
;
espai
<=
m
-
i
;
espai
++
)
;
{
printf
(
" "
)
;
}
for
(
j
=
1
;
j
<=
m
*
2
-
1
;
j
++
)
;
{
if
(
i
==
1
||
i
==
m
)
{
printf
(
"%c"
,
carac
)
;
}
else
{
printf
(
" "
)
;
}
}
printf
(
"n"
)
;
}
return
0
;
}
Por ejemplo, este bucle:
Código: C
for
(
espai
=
1
;
espai
<=
m
-
i
;
espai
++
)
;
{
printf
(
" "
)
;
}
No ejecuta
printf()
m-i veces, sino que primero hace el bucle sin nada dentro, luego ejecuta printf(). Ello debido al
;
que le has puesto al final. Tienes varias veces más el mismo error. Te aconsejo que antes de pedir ayuda, primero repases bien lo que tengas hecho.
P.D: Tus algoritmos no funcionan para lo que quieres hacer.
Salud
Fr33k K0mpu73r
badyalberto
Miembro activo
Mensajes: 77
Re: Error
«
Respuesta #2 en:
Martes 27 de Enero de 2009, 10:01 »
0
Código: Text
#include<stdio.h>
int mostrarmenu();
int calculrectangle(int,int,char);
int calculrectanglebuit(int,int,char);
int calculquadrat(int,char);
int calculquadratbuit(int,char);
int calcultriangle(int,char);
int calcultrianglebuit(int,char);
int main()
{
int fin=0;
int op,m,n;
char carac;
do
{
op = mostrarmenu();
switch(op)
{
case 1:
printf("Introdueix el tamany de un costat: n");
scanf("%d", &m);
printf("Introduiex el tamany de l'altre costat: n");
scanf("%d", &n);
fflush(stdin);
printf("Introdueix el caracter per fer la figura: n");
scanf ("%c", &carac);
calculrectangle(m,n,carac);
break;
case 2:
printf("Introdueix el tamany de un costat: n");
scanf("%d", &m);
printf("Introduiex el tamany de l'altre costat: n");
scanf("%d", &n);
fflush(stdin);
printf("Introdueix el caracter per fer la figura: n");
scanf ("%c", &carac);
calculrectanglebuit(m,n,carac);
break;
case 3:
printf("Introdueix el tamany del costat: n");
scanf("%d", &m);
fflush(stdin);
printf("Introdueix el caracter per fer la figura: n");
scanf ("%c", &carac);
calculquadrat(m,carac);
break;
case 4:
printf("Introdueix el tamany del costat: n");
scanf("%d", &m);
fflush(stdin);
printf("Introdueix el caracter per fer la figura: n");
scanf ("%c", &carac);
calculquadratbuit(m,carac);
break;
case 5:
printf("Introdueix l'alcada: n");
scanf("%d", &m);
fflush(stdin);
printf("Introdueix el caracter per fer la figura: n");
scanf ("%c", &carac);
calcultriangle(m,carac);
break;
case 6:
printf("Introdueix l' alcada: n");
scanf("%d", &m);
fflush(stdin);
printf("Introdueix el caracter per fer la figura: n");
scanf ("%c", &carac);
calcultrianglebuit(m,carac);
break;
case 7:
fin=1;
break;
default:
printf("Opcio incorrecten");
}
if (!fin)
{
printf("nn");
getchar();
getchar();
}
}while(!fin);
}
int mostrarmenu ()
{
int op;
printf("Programa que dibuixa la figura que has escollit: n");
printf("n");
printf("n");
printf("1) Rectangle: n");
printf("2) Rectangle buit: n");
printf("3) Quadrat: n");
printf("4) Quadrat buit: n");
printf("5) Triangle: n");
printf("6) Triangle buit: n");
printf("7) Salir: n");
do
{
printf("Escull una opcio: ");
scanf("%d", &op);
if ((op != 1) && (op !=2) && (op != 3) && (op != 4) && (op != 5) && (op != 6) && (op != 7))
{
printf("Opcio incorrecte n");
}
}while (op < 1 || op > 7);
return op;
}
int calculrectangle (int m, int n, char carac)
{
int i,j;
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
printf("%c",carac);
}
printf("n");
}
}
int calculrectanglebuit(int m, int n, char carac)
{
int i,j,espai;
for (i=1; i<=m;i++)
{
if((i==1) || (i==m))
{
for (j=1;j<=n;j++)
{
printf("%c",carac);
}
}
else
{
printf("%c",carac);
for (espai=1;espai<=n-2;espai++)
{
printf(" ");
}
printf("%c",carac);
}
printf("n");
}
}
int calculquadrat(int m, char carac)
{
int i,j;
for (i=1; i<=m;i++)
{
for (j=1;j<=m;j++)
{
printf("%c",carac);
}
printf("n");
}
}
int calculquadratbuit(int m, char carac)
{
int i,j,espai;
for (i=1; i<=m;i++)
{
if((i==1) || (i==m))
{
for (j=1;j<=m;j++)
{
printf("%c",carac);
}
}
else
{
printf("%c",carac);
for (espai=1;espai<=m-2;espai++)
{
printf(" ");
}
printf("%c",carac);
}
printf("n");
}
}
int calcultriangle(int m, char carac)
{
int i,j,espai;
for (i=1;i<=m;i++)
{
for(espai=1;espai<=m-i;espai++)
{
printf(" ");
}
for (j=1;j<=i*2-1;j++)
{
printf("%c",carac);
}
printf("n");
}
}
int calcultrianglebuit (int m, char carac)
{
int i,j,espai;
for (i = 1; i<=m; i++)
{
for (espai=1; espai<=m-i; espai++)
{
printf(" ");
}
if (i == 1 || i == m)
{
for (j = 1; j<=i*2-2; j++)
{
printf("%c",carac);
}
}
if (i != 1 || i != m)
{
printf("%c",carac);
for (j = 1; j<=i*2-1-2; j++)
{
printf(" ");
}
printf("%c",carac);
}
printf("n");
}
}
Ahora si me printa el triangulo, pero no se pq en la primera linea me printa dos simbolos y luego en la ultima hace una cosa rara, pq me printa bien todos los simbolos, pero me deja despues bastante espacios y m printa un simbolo todo separado :S
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Error