Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - ecfisa

#1
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 .
#2
Programación C/C++ / Re: Ayuda Con DevC++
1 Abril 2015, 06:14 AM
Hola.

No se si te estoy interpretando bien, pero de forma general creo que podrías hacer:

  ...
  printf("Opcion 1\n");
  ...
  printf("Opcion 5\n");
  printf("Ingrese una opcion del 1 al 5\n");

  do {
    printf("Opcion :");
    fscanf(stdin, "%d", &op);
  } while (op < 1 || op > 5);
  ...



Saludos.
#3
Programación C/C++ / Re: Ayuda Con DevC++
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 C/C++ / Re: Error de suma
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);
     scanf("%f", &A[a][b]);
     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 C/C++ / Re: plz ayuden
14 Marzo 2015, 21:11 PM
Hola.

Hay varias cosas, pero respondiendo a tu consulta específicamente, tendrías que inicializar el índice:
Código (cpp) [Seleccionar]
int ca = 0;

Y en la función mostrar_alumnos:
Código (cpp) [Seleccionar]
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 C/C++ / Re: ejercicio con for
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
Hola flony.

No sé si interpreté bién la consulta, pero fijate si te sirve del modo de este ejemplo:

Código (cpp) [Seleccionar]

#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
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
Hola diegofah.

Si estas trabajando en consola de Windows, intenta de este modo:

Citar
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:
Citar
 printUCode("ÁÉÍÓÚÑáéíóúñ");

(Usé las etiquetas "code" para que se visualizen correctos los caracteres)

Saludos.
#10
Programación C/C++ / Re: Problema con EOF
1 Septiembre 2014, 06:35 AM
Hola.

Una sugerencia, para reducir tu código:
Código (cpp) [Seleccionar]

...
#include <locale>
...

 while ((calificacion= cin.get()) != EOF) {
   switch (toupper(calificacion)) {
     case 'A' :
       aCuenta++;
     break;
...


Saludos.