|
1
|
Programación / Programación C/C++ / Re: [C] Comparar 2 cadenas sin usar <string.h>
|
en: 9 Abril 2015, 19:07 pm
|
Hola. Otra forma puede ser: int cmpstr( char s1[], char s2[] ) { int i; for( i=0; s1[i] == s2[i]; i++ ) if ( s1[i] == '\0' ) return 0; return s1[i] - s2[i] ; }
o también: int cmpstr( char* a, char* b ) { for( ; *a == *b; a++, b++ ) if ( *a == '\0') return 0; return *a - *b; }
Saludos .
|
|
|
3
|
Programación / Programación C/C++ / Re: Ayuda Con DevC++
|
en: 1 Abril 2015, 05:55 am
|
Hola.
Así, a primera vista, en ningún lado le estas asignando un valor a "op", su contenido es indefinido y no se cumple ninguna de las condiciones que evaluas. Por ese motivo obtenes los valores "0" que son los que inicialmente asignaste a las variables: a, h, b, t, mb y lr.
Por otro lado has olvidado publicar la totalidad del código, falta declarar la función principal y la parte donde "digitas 1".
Saludos.
|
|
|
4
|
Programación / Programación C/C++ / Re: Error de suma
|
en: 18 Marzo 2015, 16:49 pm
|
Hola. No sé si las variables que declaraste tendrán uso en otra parte del código, pero creo que bastaría de este modo: ... int main() { float A[max_alumnos][max_pruebas]; int a,b; int aprobados=0; int suspensos=0; printf("Calculo aprobados y suspensos:\n"); for(a=0; a<max_pruebas; a++) { printf("\nNumero de Prueba %d: \n", a +1); for(b=0;b<max_alumnos;b++) { printf("Calificacion del Alumno %d:", b +1); A[a][b] >= 5 ? aprobados++ : suspensos++; } } printf("\nNOTAS DE LOS ALUMNOS"); printf("\nAlumnos aprobados ...............: %d",aprobados ); printf("\nAlumnos suspendidos .............: %d\n",suspensos ); ...
Saludos. Edito: (no había visto el mensaje de rir3760)
|
|
|
5
|
Programación / Programación C/C++ / Re: plz ayuden
|
en: 14 Marzo 2015, 21:11 pm
|
Hola. Hay varias cosas, pero respondiendo a tu consulta específicamente, tendrías que inicializar el índice: int ca = 0;
Y en la función mostrar_alumnos: void mostrar_alumnos(int num) { printf("\n\nMostrar lista de Alumnos\n"); if (ca == 0) printf("\n\tLista vacia..!"); else for(int i=0; i < ca; i++) printf("Nombre: %s %s %s - Matricula: %d ", alum[i].nom, alum[i].pat, alum[i].mat, alum[i].matricula); }
Saludos.
|
|
|
6
|
Programación / Programación C/C++ / Re: ejercicio con for
|
en: 8 Septiembre 2014, 07:24 am
|
Hola kukrin. Las tres expresiones del ciclo for se delimitan al menos por dos ';', debería ser: for(i=0; i<100; i++)
En lenguaje C, el ';' indica la finalización de una sentencia, de modo que for(i=0, i<100,i++);
itera de 0 a 99 sin hacer nada. Lo mismo sucede en la línea: if(i%2!=0);
si la condición se cumple hace: nada. En la línea: acom=acom+1
falta finalizar la sentencia con ';' Por último en la línea de printf, el especificador de formato es %d y no d%. Con esos ajustes tendría que funcionar sin errores. Saludos.
|
|
|
7
|
Programación / Programación C/C++ / Re: paso de vectores a una funcion
|
en: 5 Septiembre 2014, 01:10 am
|
Hola flony. No sé si interpreté bién la consulta, pero fijate si te sirve del modo de este ejemplo: #include <iostream> #include <string> #include <sstream> using namespace std; void joindata(int*, const int , string* , const int, string*); int main() { int vi[10] = {1,2,3,4,5,6,7,8,9,10}; string vs[6] = {"uno", "dos", "tres", "cuatro", "cinco", "seis"}; string res[100]; int isize = sizeof(vi)/sizeof(vi[0]); int ssize = sizeof(vs)/sizeof(vs[0]); int maxsize = isize > ssize ? isize : ssize; joindata(vi, isize, vs, ssize, res); for (int i=0; i < maxsize; i++) cout << res[i] << endl; cin.get(); return 0; } void joindata(int* vint, const int nvi, string* vstr, const int nvs, string* result) { int minsize = nvi < nvs ? nvi : nvs; for(int i=0; i < minsize; i++) { stringstream aux; aux << vint[i]; result[i] = aux.str() + " " + vstr[i]; } if (nvi > nvs) for(int i=minsize; i<minsize+abs(nvi-nvs);i++) { stringstream aux; aux << vint[i]; result[i] = aux.str(); } if (nvi < nvs) for(int i=minsize; i<minsize+abs(nvi-nvs);i++) result[i] = vstr[i]; }
Saludos.
|
|
|
8
|
Programación / Programación C/C++ / Re: Problema con ñ,Ñ, y acentos.
|
en: 1 Septiembre 2014, 19:39 pm
|
Hola ivancea96. Tenes razón, gracias por la observación. Corrijo: void printUCode(char* str) { int i; for(i=0; i<strlen(str); i++) { switch(str[i]){ case 'á': printf("\240"); break; case 'é': printf("\202"); break; case 'í': printf("\241"); break; case 'ó': printf("\242"); break; case 'ú': printf("\243"); break; case 'Á': printf("%c",-75); break; case 'É': printf("%c",-112); break; case 'Í': printf("%c",-42); break; case 'Ó': printf("%c",-32); break; case 'Ú': printf("%c",-23); break; case 'Ñ': printf("%c",-91); break; case 'ñ': printf("%c",-92); break; default: printf("%c", str[i]); } } }
Saludos.
|
|
|
9
|
Programación / Programación C/C++ / Re: Problema con ñ,Ñ, y acentos.
|
en: 1 Septiembre 2014, 18:20 pm
|
Hola diegofah. Si estas trabajando en consola de Windows, intenta de este modo: void printUCode(char* str) { int i; for(i=0; i<strlen(str); i++) { switch(str){ case 'á': printf("\240"); break; case 'é': printf("\202"); break; case 'í': printf("\241"); break; case 'ó': printf("\242"); break; case 'ú': printf("\243"); break; case 'Á': printf("%c",-75); break; case 'É': printf("%c",-112); break; case 'Í': printf("%c",-42); break; case 'Ó': printf("%c",-32); break; case 'Ú': printf("%c",-23); break; case 'Ñ': printf("%c",-91); break; case 'ñ': printf("%c",-92); break; default: printf("%c", str); } } }
Uso: printUCode("ÁÉÍÓÚÑáéíóúñ");
(Usé las etiquetas "code" para que se visualizen correctos los caracteres) Saludos.
|
|
|
10
|
Programación / Programación C/C++ / Re: Problema con EOF
|
en: 1 Septiembre 2014, 06:35 am
|
Hola. Una sugerencia, para reducir tu código: ... #include <locale> ... while ((calificacion= cin.get()) != EOF) { switch (toupper(calificacion)) { case 'A' : aCuenta++; break; ...
Saludos.
|
|
|
|
|
|
|