Domingo 15 de Diciembre de 2024, 11:02
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
) »
problemilla con matriz
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: problemilla con matriz (Leído 1544 veces)
eruelas
Miembro activo
Mensajes: 69
Nacionalidad:
problemilla con matriz
«
en:
Miércoles 10 de Septiembre de 2008, 06:46 »
0
bueno amigos kisiera saber si me pueden guiar a saber klual es mi error se supone k el programa tiene k ver kuantas veces se repite un numero dado por un usuario en la matriz pero tengo 2 errores los kuales no detecto segun eso me falta una llave kreo pero no c en donde cierooo y sigue igual les agradeceria me guiaran de antemano gracias
Código: Text
[code]
#include<conio.h>
#include<stdio.h>
void main ()
int n,f,c,m,y,mat[3][3];
void buskar();
{
clrscr();
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++;
buskar(mat[f][c]);
}
}
void buskar()
{
for (int c=0;c<3;c++)
for(int c1=0;c1<3;c1++)
{
printf("Introduce el numero a buscar: ");
scanf("%d",&mat[c][c1]);
}
for(int s=0,q=0;s<3;s++)
for(int s1=0;s1<3;s1++)
if (mat
[s1]==mat[f][c]) {
q++
}
printf("El numero se repite %d veces",q);
}
}
[/code]
me siento komo este monito>>>
Tweet
Rombus
Miembro MUY activo
Mensajes: 105
Nacionalidad:
Re: problemilla con matriz
«
Respuesta #1 en:
Miércoles 10 de Septiembre de 2008, 13:43 »
0
uff... te recomiendo usar algun editor que coloree la sintaxis donde te marque que llave termina con cual.
fijate q tu codigo dice:
Código: Text
void main ()
int n,f,c,m,y,mat[3][3];
void buskar();{
al void main() tendrias que agregarle las llaves, pq sino no te va a andar, dspues dice
Código: Text
void buskar();{
osea, prototipo funcional, pero despues llaves, eso esta mal, y despues como que volves a declarar la void buskar
En C no se pueden anidar subprogramas como si se puede en Pascal, osea, no podes declrarar dentro del main() un void buscar(){ ... }
lo que puedo interpretar es quiza, que deberias poner las el void buskar(); antes que el main (como el prototipo funcional), o solamente la declaracion de tal funcion (como tenes una sola funcion no hace falta declarar el prototipo, excepto que quieras escribirla debajo del main).
y despues agregarle a tu void main() unas llaves..
espero que te sirva
saludos!
eruelas
Miembro activo
Mensajes: 69
Nacionalidad:
Re: problemilla con matriz
«
Respuesta #2 en:
Miércoles 10 de Septiembre de 2008, 16:43 »
0
bueno gracias por responderme pero ya lo cambie y aun me salen errores me dice k me falta un
;
y k hay parametros extras en k falle??
Código: Text
#include<conio.h>
#include<stdio.h>
int n,f,c,m,y,mat[3][3];
void buskar();
void main ()
{
clrscr();
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++;
buskar(mat);
}
}
void buskar()
{
for (int c=0;c<3;c++)
for(int c1=0;c1<3;c1++)
{
printf("Introduce el numero a buscar: ");
scanf("%d",&mat[c][c1]);
}
for(int s=0,q=0;s<3;s++)
for(int s1=0;s1<3;s1++)
if (mat[s][s1]==mat[f][c]) {
q++;
}
printf("El numero se repite %d veces",q);
getch();
}
}
Rombus
Miembro MUY activo
Mensajes: 105
Nacionalidad:
Re: problemilla con matriz
«
Respuesta #3 en:
Miércoles 10 de Septiembre de 2008, 17:06 »
0
Fijate que en la linea 13 escribiste:
Código: Text
scanf("%i",&n),
pusiste coma en vez de puto y coma.
cuando compilas que te dice los errores le das doble click al error y te marca en que linea esta.
enotnces es mas facil detectarlos
bien, lo acomode un poco con indentados mas """"correctos"""" (muchas comillas pq esto es muy relativo) asi se puede ver bien que llave deberia cerrar que cosa:
Código: Text
#include<conio.h>
#include<stdio.h>
int n,f,c,m,y,mat[3][3];
void buskar();
void main () {
clrscr();
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++;
buskar(mat);
}
}
void buskar(){
for (int c=0;c<3;c++)
for(int c1=0;c1<3;c1++){
printf("Introduce el numero a buscar: ");
scanf("%d",&mat[c][c1]);
}
for(int s=0,q=0;s<3;s++)
for(int s1=0;s1<3;s1++)
if (mat[s][s1]==mat[f][c]) {
q++;
}
printf("El numero se repite %d veces",q);
getch();
}
}
aqui sigues haciendo lo de anidar subprogramas, esto no se puede hacer en C, osea, la definicion de void buskar(){ .... } no puede estar dentro del main.
si la podes llamar dentro del main, pero no puede estar el cuerpo de esa funcion ahi dentro
eruelas
Miembro activo
Mensajes: 69
Nacionalidad:
Re: problemilla con matriz
«
Respuesta #4 en:
Miércoles 10 de Septiembre de 2008, 17:24 »
0
ps aun me sigue markando los mismos errores ya le he cambiado muchas veces haber kual es kito parametros me fijo en las komillas en llaves en todo me marka error k puede ser??? siempre son los pramateros un ; y declaracion de sintaxis :S
Código: Text
#include<conio.h>
#include<stdio.h>
int n,f,c,m,y,mat[3][3];
void buskar();
void main ()
{
clrscr();
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++;
buskar(mat);//aki de parametros
}
}
void buskar()
{//aki de sintaxis
for (int c=0;c<3;c++)
for(int c1=0;c1<3;c1++){
printf("Introduce el numero a buscar: ");
scanf("%d",&mat[c][c1]);
}
for(int s=0,q=0;s<3;s++)
for(int s1=0;s1<3;s1++)
if (mat[s][s1]==mat[f][c]) {
q++;
}
printf("El numero se repite %d veces",q);
getch();
}
}//aki me marca error de ";"
Rombus
Miembro MUY activo
Mensajes: 105
Nacionalidad:
Re: problemilla con matriz
«
Respuesta #5 en:
Miércoles 10 de Septiembre de 2008, 17:45 »
0
bien, perdon por no haberlo mirado mas a fondo, pero el error de parametro que te tira es pq vos le estas pasando mat como parametro, pero el prototipo funcional de buskar(); es void como parametro, osea si le queres pasar mat el prototipo deberia ser int buscar(mat_t mat[][M]);
digo que es de tipo int porque calculo que seria de gran utilidad que devuelva verdadero si lo encontro y falso si no.
y el error de sintaxis es porque como dije las dos veces anteriores, en C no se puede anidar subprogramas.
el cuerpo de la funcion buskar(); deberia estar, o bien antes del main, o bien, despues, no dentro de la funcion main.
una onda asi:
Código: Text
void buskar(int mat[3][3]){
for (c=0;c<3;c++)
for(c1=0;c1<3;c1++){
printf("Introduce el numero a buscar: ");
scanf("%d",&mat[c][c1]);
}
for(s=0,q=0;s<3;s++)
for( s1=0;s1<3;s1++)
if (mat[s][s1]==mat[f][c]) {
q++;
}
printf("El numero se repite %d veces",q);
getchar();
}
void main (void) {
...
...
}
o bien:
Código: Text
void buskar(int mat[3][3]);
void main (void) {
...
...
}
void buskar(int mat[3][3]){
for (c=0;c<3;c++)
for(c1=0;c1<3;c1++){
printf("Introduce el numero a buscar: ");
scanf("%d",&mat[c][c1]);
}
for(s=0,q=0;s<3;s++)
for( s1=0;s1<3;s1++)
if (mat[s][s1]==mat[f][c]) {
q++;
}
printf("El numero se repite %d veces",q);
getchar();
}
no me fije todo lo que es algoritmia, solo esos problemas que te tiraba, si te sigue dando problemas avisame
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
problemilla con matriz