elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


  Mostrar Mensajes
Páginas: [1] 2 3 4 5 6 7
1  Programación / Programación C/C++ / eliminar vocales en: 6 Septiembre 2012, 17:09
Hola estoy haciendo un programa que invierta una cadena y elimie las vocales.

La primera parte la tengo controlada, pero a la hora de eliminar vocales no consigo eliminar todas, ¿ podeis echarme un cable, por favor?

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. void invertir (char p[]);
  6.  
  7. main()
  8. {
  9. char palabra[80];
  10.  
  11. printf("dime una palabra\n");
  12. gets (palabra);
  13. invertir (palabra);
  14. printf("\n");
  15. system("pause");      
  16. }
  17.  
  18. void invertir (char p [])
  19. {
  20.     int i,j;
  21.     j=strlen(p);
  22.     printf("al reves:\n");
  23.  
  24.    for(i=0;i<=j;i++)
  25.    {
  26.     if (p[i]=='a' || p[i]=='e' ||  p[i]=='i' ||p[i]=='o'||p[i]=='u')      
  27.     {
  28.     p[i]=' ';
  29.     }      
  30.    printf("%c",p[j-i-1]);
  31.   }    
  32. }
  33.  
2  Programación / Programación C/C++ / Re: Multiplicación de matrices en: 5 Septiembre 2012, 18:03
Gracias Avesudra,
solucionado

un saludo
3  Programación / Programación C/C++ / Re: Multiplicación de matrices en: 5 Septiembre 2012, 14:09
Hola Kal,

El problema que me da es que la matriz la imprime como si no estuviera inicializada, es decir cada campo aparece relleno de una ristra de numeros.

Un saludo
4  Programación / Programación C/C++ / Multiplicación de matrices en: 4 Septiembre 2012, 17:09
Hola,

He redactado este codígo que genera, suma, resta , multiplica y multiplica por un escalar matrices.
La función de multiplicar me falla, podeis ayudarme?
gracias.

Código
  1. #include <stdlib.h>
  2. #include<stdio.h>
  3. #include <time.h>
  4.  
  5.  
  6. int n;
  7.  
  8. void generar_matriz (int m[][3]);
  9. void sumar (int m1[][3], int m2[][3]);
  10. void restar (int m1[][3], int m2[][3]);
  11. void multiplicar (int m1[][3], int m2[][3]);
  12. void escalar (int m1[][3]);
  13.  
  14. int   main()
  15. {    
  16.  
  17.        printf("dimension");  
  18.      scanf("%d",&n);  
  19.      int matriz1[n][3];
  20.       int matriz2[n][3];
  21.  
  22.  
  23.        srand (time(NULL));
  24.  
  25.        generar_matriz (matriz1);
  26.        printf("\n");
  27.        generar_matriz (matriz2);
  28.        printf("\n");
  29.        sumar (matriz1, matriz2);
  30.        printf("\n");
  31.        restar (matriz1, matriz2);
  32.        printf("\n");
  33.        multiplicar(matriz1,matriz2);
  34.        printf("\n");
  35.        escalar(matriz1);
  36.  
  37.        printf ("Presione una tecla para salir.....");
  38.        getchar();
  39.  
  40. }
  41. /*********************************************/
  42.  
  43. void generar_matriz (int m[][3])
  44. {
  45.  
  46.    int i,j;
  47.  
  48.    for (i=0;i<n;i++)
  49.        {
  50.            for (j=0;j<n;j++)
  51.                {
  52.                    m[i][j]=(rand()%16);
  53.                    printf("%d\t",m[i][j]);
  54.                }
  55.            printf("\n\n");
  56.        }
  57.  
  58. }
  59.  
  60. void sumar (int m1[][3], int m2[][3])
  61. {
  62.    int i,j;      
  63.    for (i=0;i<n;i++)
  64.        {
  65.            for (j=0;j<n;j++)
  66.                {        
  67.                printf("%d\t",(m1[i][j])+(m2[i][j]));
  68.                }
  69.        printf("\n\n");
  70.        }
  71. }
  72.  
  73. void restar (int m1[][3], int m2[][3])
  74. {
  75.    int i,j;      
  76.    for (i=0;i<n;i++)
  77.        {
  78.            for (j=0;j<n;j++)
  79.                {
  80.  
  81.                printf("%d\t",(m1[i][j])-(m2[i][j]));
  82.                }
  83.        printf("\n\n");
  84.        }
  85.  
  86.  
  87. }
  88. void escalar (int m1[][3]){
  89.     int i, j, e;
  90.     printf("escalar");
  91.     scanf("%d",&e);    
  92.    for (i=0;i<n;i++)
  93.        {
  94.            for (j=0;j<n;j++)
  95.                {
  96.                printf("%d\t", e*(m1[i][j]));
  97.                }
  98.                printf("\n");
  99.        }
  100. }                    
  101.  
  102. void multiplicar (int m1[][3], int m2[][3])
  103. {
  104.    int i,j, k;  
  105.    int m3[n][3];  
  106.    for (i=0;i<n;i++)
  107.        {
  108.            for (j=0;j<n;j++)
  109.                {
  110.                             for (k=0;k<n;k++)
  111.                             {
  112.  
  113.                             m3[i][j]=m3[i][j]+(m1[i][k]*m2[k][j]);
  114.                             }
  115.                printf("%d\t",m3[i][j]);
  116.                }
  117.        printf("\n\n");
  118.        }
  119.  
  120.  
  121. }
5  Programación / Programación C/C++ / Re: funciones INT vs VOID en: 4 Septiembre 2012, 16:49
Gracias por vuestras respuestas.

Gracias Avesudra por tu respuesta tan detallada

un saludo
6  Programación / Programación C/C++ / funciones INT vs VOID en: 3 Septiembre 2012, 13:38
Buenas,

Una pregunta que me gustaría me aclaraseis,

A la hora de trabajas la función principal con funciones, estas puedes ser void ( no devuelven nada) int (devuelven un parametro), Por ejemplo sumar dos números, se puede hacer de las dos formas; ¿ es recomendable hacerlo de alguna de las dos formas en concreto o se pueden usar indistintamente?

gracias
7  Programación / Programación C/C++ / Re: funcion recibe dos parametros en: 1 Septiembre 2012, 10:37
Avesudra, el programa funciona perfectamente, pero hay que modificar una pequeña cosa para que de el resultado buscado, porque si no mantiene el error de 2 c2 correctos.

En verificaSi es Numero:
i
Código
  1. nt verificaSiEsNumero(char *stream)
  2. {
  3.    while(*stream!='\0')
  4.    {
  5.        if(*stream>=48 && *stream<=57)// si strema está entr 0  y 9//
  6.        {
  7.            return 0;//Si no es numero retorna -1
  8.        }
  9.        ++stream;
  10.    }
  11.    return -1;

Muchas gracias por tu aportación

8  Programación / Programación C/C++ / Re: funcion recibe dos parametros en: 1 Septiembre 2012, 00:16
Creo queme estoy haciendo un lío;

Entiendo que la función verificacadena, en la funcíón principal, analiza    argv[1] y argv[2], sin embargo parece que no recorre todo el contenido, es decir tengo la duda de como recorre todos los caracteres de ambas posiciones para determinar si es número o cadena.

en tu código entiendo avesudra que recorres toda la cadena, creo que lo que haces, dentro del bucle for,  lo podríamos arreglar tambien con strlen(cadena).

Lo que sí he comprobado es que si el en el segundo argumento introducimos a2 (habiendo introducido en el primero un número), devuelve que es correcto, cuando no debería.

Avesudra ¿ como integrarías tu funcíon dentro del código que tengo hecho?  te importaría incluirla?

saludos

saludos
9  Programación / Programación C/C++ / Re: funcion recibe dos parametros en: 31 Agosto 2012, 21:40
Fire544: en la función verifica cadena tuya no recorres la cadena, por lo que no sirve(según creo yo pues si el usuario mete una cadena alfanumérica ¿como la tratarías?) , además tienes un pequeño error en el if pues el operador lógico and no es & , si no &&.Por lo demás bien.

ALONSOQ:, tu función verificaCadena también tiene un error (en mi opinión)pues solo comprobais (los dos tú y Fire) el primer carácter y dependiendo de que sea retornais , que en principio está bien , pero si el usuario mete aaaa1452345 por ejemplo ¿se tomaría como cadena o como número?

Arriba dejé unas funciones no sé si las habréis visto.

Gracias Avesudra por tu aportación;

Por seguir ya en el mismo código que he enviado si en la cadena , en lugar de poner del 1 al 3, ponemos por ejemplo del 0 al 100, es decir
Código
  1. for (i=0;i<3;100++){
  2.    if(cadena[i]>=65&cadena[i]<=122)
  3.    return 1;
  4.    else
  5.    return 0;  

comprobaría los 100 primeros caracteres y entonces estaría bien, ¿ no es así?

gracias
10  Programación / Programación C/C++ / Re: funcion recibe dos parametros en: 31 Agosto 2012, 18:13
Estimado Fire,

finalmente a partir de lo que me has ayudado he redactado este código, que creo que funciona perfectamente.

Una duda, probablemente por el bloqueo que tengo con tanto codigo; ¿ como recorre la cadena de letras y numeros que introduzco  como argumentos 1 y 2  para leerleos. Porque con la función verificacadena, si no he entendido mal es para recorrer el argv?

Muchíisimas gracias de nuevo

un saludo
Código
  1. #include <stdio.h>
  2.  
  3.  
  4. int verificaCadena(char cadena[]);
  5.  
  6. int main(int argc, char *argv[])
  7. {
  8.  
  9.    int i;
  10.  
  11.  
  12.  printf("Numero de argumentos: %i\n", argc);
  13.  printf("Nombre del programa: %s\n", argv[0]);
  14.  
  15.  for(i=1;i<(argc); i++)
  16.   {
  17.      printf("Argumento numero %i: %s\n", i, argv[i]);
  18.   }
  19.  
  20.    if(argv[1]!=0&&argv[2]!=0)
  21.    {
  22.                           if(verificaCadena(argv[2])==1 && verificaCadena(argv[1])==0)
  23.                           {  
  24.                           printf("Son Correctos (Numero y Cadena)!!");
  25.                           }                      
  26.                           else
  27.                           printf("No son Correctos");
  28.   }        
  29.   else
  30.   printf("No son Correctos");
  31.  
  32. }  
  33.  
  34. int verificaCadena(char cadena[])
  35. {
  36. int i;
  37. for (i=1;i<3;i++){
  38.    if(cadena[i]>=65&cadena[i]<=122)
  39.    return 1;
  40.    else
  41.    return 0;  
  42. }
  43. }
Páginas: [1] 2 3 4 5 6 7
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines