• Jueves 2 de Abril de 2026, 21:12

Mostrar Mensajes

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


Temas - SkullFlower

Páginas: [1]
1
C/C++ / Matriz con apuntadores
« en: Martes 12 de Abril de 2011, 03:04 »
Hola, quisiera ver si me podían ayudar con este código:

Código: C
  1. #include<stdio.h>
  2. #include<time.h>
  3. void matriz(int (*m)[]);
  4. int main(){
  5.     int m[3][3];
  6.     int i, j;
  7.     srand(time(NULL));
  8.     matriz(m);
  9.     for(i=0;i<3;i++){
  10.         for(j=0;j<3;j++){
  11.             printf("%d ", m[i][j]);
  12.         }
  13.         printf("n");
  14.     }
  15.     return 0;
  16. }
  17. void matriz(int (*m)[]){
  18.     int i, j;
  19.     for(i=0;i<3;i++){
  20.         for(j=0;j<3;j++){
  21.             (*m+i)[j]=rand()%10;
  22.         }
  23.     }
  24. }
  25.  

Lo que quiero hacer es asignarle a la matriz M valores con rand del 0 al 9 pero usando punteros pero esto es lo que me sale:

Output:
Citar
bash-3.1$ gcc matrix.c
bash-3.1$ ./a.out
4 9 7
0 0 134513424
0 134518552 -1078581720

2
C/C++ / duda con un switch
« en: Viernes 1 de Octubre de 2010, 03:17 »
Hola,

bueno estoy usando un switch pero por ejemplo al poner un numero diferente al 1, 2 o 3 como el 5 u otro numero que no este dentro de las opciones, sale el mensaje ese de "opción no valida" y luego llama a main para que se empiece la ejecución del programa de nuevo para que elija una opción de las que se le muestran pero si ponen varias veces 5 u otro numero y después seleccionan una opción de las que se muestran requiere de que presione varias veces enter para que termine la ejecución del programa  :wacko:

por que pasa eso?
y otra cosa, es correcto eso que estoy haciendo en default? eso de llamar a main xD

Código: C
  1. #include<stdio.h>
  2. int main(){
  3.     int op;
  4.     char buffer[3];
  5.     printf("1. n2. n3. n"
  6.     "Seleccione una opcion: ");
  7.     fgets(buffer, sizeof(buffer), stdin);
  8.     sscanf(buffer, "%d", &op);
  9.     switch(op){
  10.         case 1:
  11.             printf("1n");
  12.             break;
  13.         case 2:
  14.             printf("2n");
  15.             break;
  16.         case 3:
  17.             printf("3n");
  18.             break;
  19.         default:
  20.             printf("Opcion no validan");
  21.             main();
  22.     }
  23.     getchar();
  24.     return 0;
  25. }
  26.  

3
C/C++ / Project Euler (problema 10)
« en: Martes 20 de Julio de 2010, 04:29 »
Bueno, estoy intentando resolver algunos problemas de la pagina projecteuler y ya llegue al 10 pero por alguna razón no me sale.

el problema dice así:

Citar
The sum of the primes below 10 is 2 + 3 + 5 + 7 = 17.

Find the sum of all the primes below two million.

el código que tengo hasta ahorita es este:

Código: C
  1. #include<stdio.h>
  2. #include<math.h>
  3. int main(){
  4.     int lim = 2000000;
  5.     int i, j;
  6.     int sieve[lim];
  7.     int sum;
  8.     sum = 0;
  9.     for(i=1;i<=lim;i++){
  10.         sieve[i]=1;
  11.         if(i<2){
  12.             sieve[i]=0;
  13.         }
  14.     }
  15.     for(i=4;i<=lim;i+=2){
  16.         sieve[i]=0;
  17.     }
  18.     for(i=3;i<=sqrt(lim);i+=2){
  19.         if(sieve[i]){
  20.             for(j=i*2;j<=lim;j+=i){
  21.                 sieve[j]=0;
  22.             }
  23.         }
  24.     }
  25.     for(i=1;i<=lim;i++){
  26.         if(sieve[i]){
  27.             sum+=i;
  28.         }
  29.     }
  30.     printf("%dn", sum);
  31.     return 0;
  32. }
  33.  

el resultado que me da es: 1179908154

pero yo se que ese no es el resultado correcto, el resultado correcto es: 142913828922

asi que no se que este haciendo mal  :wacko:

4
C/C++ / Problema con numeros primos
« en: Miércoles 31 de Marzo de 2010, 09:45 »
Hola,

Quiero hacer un programa que imprima la suma de todos los números primos menores a 2,000,000 pero cuando ejecuto el código me da un numero negativo o algo así.  :wacko:

Ya lo probé con números mas pequeños, por ejemplo que haga la suma de los números primos menores a 10,000 y si me da bien el resultado pero supongo que me da error en el de 2,000,000 por que debería de usar long o algo parecido pero lo use y de todos modos me salia un numero negativo, asi que mi duda es:

como puedo hacer para que me de el resultado bien?

este es el codigo que tengo:

Código: C
  1. #include<stdio.h>
  2. int Primos(int x);
  3. int main(){
  4.     int x, y, z;
  5.     y = 0;
  6.     x = 2000000;
  7.     for(x; x>=2; x--){
  8.         if(Primos(x)){
  9.             y += x;
  10.         }
  11.     }
  12.     printf("%dn", y);
  13.     return 0;
  14. }
  15. int Primos(int x){
  16.     int y;
  17.     int cont = 0;
  18.     for(y=1;y<=x; y++){
  19.         if(x%y==0){
  20.             cont++;
  21.         }
  22.     }
  23.     if(cont==2){
  24.         return 1;
  25.     }
  26.     return 0;
  27. }
  28.  

este es mi código usando long, pero pues nunca lo había usado así que puede que tenga algo mal y por eso no me de bien el resultado:

Código: C
  1. #include<stdio.h>
  2. int Primos(unsigned long int x);
  3. int main(){
  4.     unsigned long int x, y, z;
  5.     y = 0;
  6.     x = 2000000;
  7.     for(x; x>=2; x--){
  8.         if(Primos(x)){
  9.             y += x;
  10.         }
  11.     }
  12.     printf("%dn", y);
  13.     return 0;
  14. }
  15. int Primos(unsigned long int x){
  16.     unsigned long int y;
  17.     unsigned long int cont = 0;
  18.     for(y=1;y<=x; y++){
  19.         if(x%y==0){
  20.             cont++;
  21.         }
  22.     }
  23.     if(cont==2){
  24.         return 1;
  25.     }
  26.     return 0;
  27. }
  28.  

5
C/C++ / Numeros perfectos
« en: Miércoles 20 de Enero de 2010, 04:02 »
Hola,

quiero hacer un programa que le introduzcan cuantos numeros perfectos quiere que el programa saque por ejemplo si pones un 1 pues va a imprimir solo el primer numero perfecto y si pones 2 pues los primeros 2 numeros perfectos y asi sucesivamente.

Mi problema es que por ejemplo si pongo que calcule 1 saca el primer numero perfecto y sigue sacando los que siguen, tambien pasa lo mismo si pongo que calule 2 y con cualquier otro numero.

este es el codigo que tengo hasta ahorita:

Código: C
  1. #include<stdio.h>
  2. void perfecto(int x);
  3. int main(){
  4.     int y, x;
  5.     printf("Introduzca cuantos numeros perfectos quiere: ");
  6.     scanf("%d", &x);
  7.     while(x >= 1){
  8.         for(y = 1; ;y++){
  9.             perfecto(y);
  10.             x--;
  11.         }
  12.     }
  13.     return 0;
  14. }
  15.  
  16. void perfecto(int x){
  17.     int sum = 0, y;
  18.     for(y = 1; y < x/2+1; y++){
  19.         if(x % y == 0){
  20.             sum += y;
  21.         }
  22.     }
  23.     if(sum == x){
  24.         printf("%dn", x);
  25.     }
  26. }
  27.  

Páginas: [1]