Autor
|
Tema: ¿Con qué carácter especial detengo un vector? (Leído 1,789 veces)
|
estudianteuv
Desconectado
Mensajes: 10
|
Hola a todos, ¿qué tal? Lo que pasa es que tengo este programa que adjuntaré, el cuál no sé si es correcto (espero puedan ayudarme en la función, si es que está mal) pero en fin, mi pregunta es que; ¿cuál es el carácter especial para detener un vector, por ejemplo en cadenas es '\0', como sabes, ¿pero en un vector? Espero puedan ayudarme. Este es el programa: Lo he compilado y funciona pero al final sale 0. #include<stdio.h> #define T 5 int buscar_nmayor(int *v,int n); int main(){ int vct[T]; int mayor,i=0; int num_mayor; for(i=0;i<T;i++){ printf("Inserte valor %i del vector: ",i+1); scanf("%i",&vct[i]);} mayor=vct[0]; num_mayor=buscar_nmayor(vct,mayor); printf("El numero mayor del vector es: %i",num_mayor); return 0; } int buscar_nmayor(int *v,int n){ if(*v=='\0')return 0; else{if(*v>n)return buscar_nmayor(++v,n); else return buscar_nmayor(++v,n);} }
|
|
« Última modificación: 24 Mayo 2018, 23:18 pm por estudianteuv »
|
En línea
|
|
|
|
XKC
Desconectado
Mensajes: 128
|
Hola a todos, ¿qué tal? Lo que pasa es que tengo este programa que adjuntaré, el cuál no sé si es correcto (espero puedan ayudarme en la función, si es que está mal) pero en fin, mi pregunta es que; ¿cuál es el carácter especial para detener un vector, por ejemplo en cadenas es '\0', como sabes, ¿pero en un vector? Espero puedan ayudarme. Este es el programa: Lo he compilado y funciona pero al final sale 0. #include<stdio.h> #define T 5
int buscar_nmayor(int *v,int n);
int main(){ int vct[T]; int mayor,i=0; int num_mayor; for(i=0;i<T;i++){ printf("Inserte valor %i del vector: ",i+1); scanf("%i",&vct[i]);} mayor=vct[0]; num_mayor=buscar_nmayor(vct,mayor); printf("El numero mayor del vector es: %i",num_mayor); return 0; }
int buscar_nmayor(int *v,int n){ if(*v=='\0')return 0; else{if(*v>n)return buscar_nmayor(++v,n); else return buscar_nmayor(++v,n);} } Has probado con NULL??
|
|
|
En línea
|
Para poder atacar y vencer con seguridad, ataca donde ellos no puedan defenderse. Para defenderte y resistir firme, defiéndete en donde ellos no atacarán.
|
|
|
estudianteuv
Desconectado
Mensajes: 10
|
Has probado con NULL??
Sinceramente no, y no sé como usarlo, ¿solamente escribo NULL? ¿O tengo que agregarle algo más?
|
|
|
En línea
|
|
|
|
MAFUS
Desconectado
Mensajes: 1.603
|
NULL es un define de 0. Lo que debes pasar a la función que reciba tu vector es el número de elementos que tiene. En vez de pasar mayor, que no sirve de nada pues ese dato lo puedes sacar una vez dentro de la función, pásale el número de elementos, así podrás hacer un for desde 0 hasta ese máximo.
|
|
|
En línea
|
|
|
|
Serapis
|
De entrada no todas las cadenas acaban en null (carácter ASCII 0), solo las BString. Hay cadenas de longitud fija, cuyo tamaño va justo delante del puntero al primer carácter. Estas no acaban sino en lo que tenga la propia cadena, si se rellenó de espacios, acabará en espacio, si no con lo que se rellenare. Es decir es una convención que siguen muchos lenguajes, pero no es universal (no se aplica siempre) Y en cuanto a los arrays, pasa lo mismoq ue con las cadenas de longitud fija, hay un descriptor (estructura), que delimita el tamaño del array. Que to sepa, ningún lenguaje implementa nada similar a una BString, para un array... la razón es que al contrario que una cadena que solo tiene sentido que tenga caracteres imprimibles (en general), en un array cualquier byte tiene igual probabilidad y sentido que aparezca, luego es imposible fijar un byte concreto para tal propósito, sin matar la útilidad de un array... Imagina que cargas un fichero desde disco, el array finalizaría cuando encontrara x byte?.... es decir nadie, nunca, para nada, podría usar un determinado byte???... ni siquiera cuando procede de un resultado arimético?. A-B-S-U-R-D-O. Ahora ya sabes porque no existe. Para buscar en un array, necesitas saber el límite del array. Si yu ya declaras que el array tiene 'T' elementos, entonces ya sabes que el límite es 'T'. entero = Funcion BuscarMayor(array X() , entero T) entero j, k
j= x(0) bucle para k desde 1 hasta T-1 si ( x(k) es mayor que j) luego j = x(k) fin si siguiente devolver j fin funcion
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Reemplazar un caracter en una posicion dada por otro caracter
Java
|
nico56
|
8
|
16,153
|
8 Mayo 2010, 22:26 pm
por Debci
|
|
|
copiar el contenido de un fichero caracter por caracter (redireccionado)
Programación C/C++
|
Pirata LOL
|
2
|
4,983
|
22 Febrero 2011, 04:10 am
por Pirata LOL
|
|
|
(Solucionado) [Batch] Problema con este caracter especial: !
Scripting
|
SuperDraco
|
4
|
5,263
|
5 Abril 2011, 22:39 pm
por leogtz
|
|
|
AYUDA leer carácter a carácter un fichero y guardarlo en una matriz C++
Programación C/C++
|
slavinyo
|
0
|
3,902
|
8 Junio 2013, 18:25 pm
por slavinyo
|
|
|
Duda sobre el layout de los keyboards y un caracter especial...
Programación General
|
Eleкtro
|
2
|
3,348
|
5 Septiembre 2013, 06:54 am
por Eleкtro
|
|