|
1141
|
Programación / Programación C/C++ / Re: Programa que imprima los 1000 primeros numeros primos
|
en: 24 Noviembre 2012, 22:29 pm
|
A la vista del código que pones en el post "Programa con funciones en función de una opción" salta a la vista que más bien parece una falta de fe en ti mismo o que te has bloqueado. Así que ahí va una posible solución a tu problema, calcula los N primos indicados guardándolos en un array como pedias: #include <stdio.h> #include <math.h> int main() { int i,j=0,N,primos[1001]; printf ("Introduzca un numero:"); scanf ("%d",&N); for (i=0;j<N;i++){ if (esPrimo(i)!=0) { primos[j]=i; j++; } } for (i=0;i<N;i++) printf ("%d ",primos[i]); return 0; } int esPrimo(int n) { int rq ,i; rq = (int) sqrt (n); for ( i = 2; i <= rq; i++) { if (fmod(n,i) == 0) return 0; } return n; }
Saluditos!.
|
|
|
1142
|
Programación / Programación C/C++ / Re: Programa con funciones en funcion de una opcion
|
en: 24 Noviembre 2012, 22:25 pm
|
Cambié y sigue sin salirme, me sale un numero enorme que no es ni de lejos el resultado real : ¿Has probado a inicializar suma?, es decir: int suma=0;
Si no lo haces la variable suma toma inicialmente un valor basura.Saluditos!. ... y mira los mensajes que te llegan. P.D: Cuando vayas a poner un código, previamente te vas a donde pone GesHi y elijes C++, y en medio de las etiquetas que aparecen pegas tu código. Saluditos!.
|
|
|
1143
|
Programación / Programación C/C++ / Re: [C] [?] Problemas con suma de polinomios
|
en: 24 Noviembre 2012, 16:54 pm
|
Sólo una chorrada, cuando al if o else o while o ... sólo le sigue una instrucción no hace falta "envolverlas" con las llaves {}:if((polin_n[i]+polin_m[i])!=0) printf(" %+g%s\n", polin_n [i ]+polin_m [i ], x [i -1]); else
Y por cierto, al usar las etiquetas GesHi usa las de C++ ya que así el código sale coloreado y es más fácil seguirlo. Saluditos!.
|
|
|
1144
|
Programación / Programación C/C++ / Re: [C] [?] Problemas con suma de polinomios
|
en: 24 Noviembre 2012, 15:24 pm
|
Tienes un incremento de más cuando el último sumando es cero: #include <stdio.h> int main(void){ int n, m, i; float polin_n[10]={0}, polin_m[10]={0}; char x[9][4]={{"x"},{"x^2"},{"x^3"},{"x^4"},{"x^5"},{"x^6"},{"x^7"},{"x^8"},{"x^9"}}; do{ /*introduccion de datos*/ printf("introducir el grado de p(x): "); scanf("%d", &n); }while(n<0 || n>10); for(i=0; i<=n; i++){ scanf("%f", &polin_n[i]); } do{ printf("introducir el grado de q(x): "); scanf("%d", &m); }while(m<0 || m>10); for(i=0; i<=m; i++){ scanf("%f", &polin_m[i]); } if(polin_n[0]!=0){ /*imprimir el primer polinomio*/ printf("\np(x) %+g", polin_n[0]); i=1; }else{ i=0; } for(i=i; i<=n; i++){ while(polin_n[i]==0) i++; printf(" %+g%s", polin_n[i], x[i-1]); } if(polin_m[0]!=0){ /*imprimir el segundo polinomio*/ printf("\nq(x) %+g", polin_m[0]); i=1; }else{ i=0; } for(i=i; i<=m; i++){ while(polin_m[i]==0) i++; printf(" %+g%s", polin_m[i], x[i-1]); } if(m>n) n=m; /*imprimir la suma del los polinomios*/ printf("\n\nsuma: %+g", polin_n[0]+polin_m[0]); for(i=1; i<=n; i++){ while((polin_n[i]+polin_m[i])==0 && i<n) i++;/* <==aqui el i<n */ printf(" %+g%s", polin_n[i]+polin_m[i], x[i-1]); } printf("\n"); return 0; }
Saluditos!.
|
|
|
1145
|
Programación / Programación C/C++ / Re: PROBLEMA DE LOS DOS CUERPOS
|
en: 23 Noviembre 2012, 17:16 pm
|
En las expresiones:X1[i+1]=X1+(vx1*dt); ......... ......... Y1[i+1]=Y1+(vy1*dt);
que te dan la posición hay aceleración, tanto en OX como en OY y veo que usas las expresiones: x=x0+vx*t .....¿ y no faltaría: +1/2ax*t^2?. Idem para la y.
|
|
|
1146
|
Programación / Programación C/C++ / Re: Ayuda, programa para calcular el valor de las resistencias y su color en C
|
en: 22 Noviembre 2012, 23:07 pm
|
PARECE QUE IMPRIME UN CARÁCTER MÁS EN COLOR, sólo había que quitar las librerias y cambiar codigo_colores a main, no he tocado nada más:#include <stdio.h> #include <stdlib.h> void color_numero(); void numero_color(); int main(){ int opcion; printf("1.-Ingresar colores y mostrar valor de resistencia\n2.-Ingresar valor de resistencia y mostrar colores\n"); scanf("%d",&opcion); switch(opcion){ case 1: color_numero(); break; case 2: numero_color(); break; default: printf("Opcion no valida\n"); break; } } void color_numero(){ char colores[3]; int valor; printf("N=negro\nM=marron\nR=rojo\nn=naranja\nA=am arillo\nV=verde\na=azul\nv=vilotA\nG=gris\nB=blanc o\n"); printf("Ingresa las inicales de los colores de las resistencias: \n"); scanf("%s",colores); //evaluamos el primer elemento del arreglo comparandolo con las letras que representan cada color switch(colores[0]){ case 'N': valor=0; break; case 'M': valor=10; break; case 'R': valor=20; break; case 'n': valor=30; break; case 'A': valor=40; break; case 'V': valor=50; break; case 'a': valor=60; break; case 'v': valor=70; break; case 'G': valor=80; break; case 'B': valor=90; break; default: printf("Opcion invalida"); break; } //evaluamos el segundo elemento switch(colores[1]){ case 'N': valor+=0; break; case 'M': valor+=1; break; case 'R': valor+=2; break; case 'n': valor+=3; break; case 'A': valor+=4; break; case 'V': valor+=5; break; case 'a': valor+=6; break; case 'v': valor+=7; break; case 'G': valor+=8; break; case 'B': valor+=9; break; default: printf("Opcion invalida"); break; } //evaluamos el tercer elemento que es el multiplicador switch(colores[2]){ case 'N': valor*=1; break; case 'M': valor*=10; break; case 'R': valor*=100; break; case 'n': valor*=1000; break; case 'A': valor*=10000; break; case 'V': valor*=100000; break; case 'a': valor*=1000000; break; default: printf("Opcion invalida"); break; } //se imprime el valor printf("El valor de la resistencia es: %d Ohms\n",valor); } void numero_color(){ char color[3];//arreglo donde se iran guardando los colores int valor,b1,b2,multiplicador;//variables donde se guardaran los valores de las bandas y el valor total de la resistencia printf("Ingresa el valor de la resistencia en Ohms:"); scanf("%d",&valor); for(multiplicador=1;valor>=100;multiplicador++){ valor=valor/10; } b1=valor/10; b2=(valor-(10*b1)); printf("%d %d\n",b1,b2); switch(b1){//aqui se busca el color de la banda 1 case 1: color[0]='M'; break; case 2: color[0]='R'; break; case 3: color[0]='n'; break; case 4: color[0]='A'; break; case 5: color[0]='V'; break; case 6: color[0]='a'; break; case 7: color[0]='v'; break; case 8: color[0]='G'; break; case 9: color[0]='B'; break; default: printf("Opcion invalida"); break; } switch(b2){//aqui se busca el color de la banda 2 case 0: color[1]='N'; break; case 1: color[1]='M'; break; case 2: color[1]='R'; break; case 3: color[1]='n'; break; case 4: color[1]='A'; break; case 5: color[1]='V'; break; case 6: color[1]='a'; break; case 7: color[1]='v'; break; case 8: color[1]='G'; break; case 9: color[1]='B'; break; default: printf("Opcion invalida"); break; } switch(multiplicador){//aqui se busca el color de la banda multiplicadora case 1: color[2]='N'; break; case 2: color[2]='M'; break; case 3: color[2]='R'; break; case 4: color[2]='n'; break; case 5: color[2]='A'; break; case 6: color[2]='V'; break; case 7: color[2]='a'; break; default: printf("Opcion invalida"); break; } printf("Los colores correspondientes a este valor son: \n%s\n",color); printf("\tTabla de colores:\nN=negro\nM=marron\nR=rojo\nn=naranja\nA= amarillo\nV=verde\na=azul\nv=vilotA\nG=gris\nB=bla nco\n"); }
Saluditos!.
|
|
|
1147
|
Programación / Programación C/C++ / Re: ayuda por favor en c++
|
en: 22 Noviembre 2012, 13:39 pm
|
necesito ayuda con este ejercicio,,, yo lo hice pero me falta terminarlo,, y lo que me falta es encontrar los que estan en A y no en B y viceversa Te pongo un ejemplo con dos arrays a y b y elimino los de a que estan en b y los guardo en a1. Análogamente sería para los de b que no esten en a. Eso sí, supongo que no hay repetidos en los arrays, si no fuera así habría que eliminar los repe de a1 y b1: #include <stdio.h> #define N 5 int main() { int i,j,k=0,a[N]={1,2,3,4,5},b[N]={3,4,5,6,7},a1[N],b1[N]; for (i=0;i<N;i++){ for (j=0;j<N;j++){ if (a[i]==b[j]) a[i]=0; } } for (i=0;i<N;i++){ if (a[i]!=0){ printf ("%d ",a[i]); a1[k]=a[i];k++; /*<== guardo en nuevo array los de a no estan en b*/ } } puts ("\n"); for (i=0;i<k;i++) printf ("%d ",a1[i]); return 0; }
Saluditos!.
|
|
|
1150
|
Programación / Programación C/C++ / Re: como hacer un programa que imprima los numeros que no estan dentro de una rango
|
en: 20 Noviembre 2012, 21:09 pm
|
como puedo hacer un programa en C que dados N numeros proporcionados por el usuario imprima los que no se no se encuentren dentro de un rango igualmento proporcionado por el usuario.
por ejemplo el usuario introducirá:
N números: 4, 8, 10 , 14, 16, 15, 14 limite inf: 0 limite sup: 10
entonces el programa imprimirá los números que no se encuentren dentro del 0 al 10
regresara: 14, 16, 15 (sin imprimir números previamente leídos)
Vamos que te hagan toda la tarea!!!!.No aportas nada ! ! ! Pero como no somos malos, para que te hagas una idea de por donde pueden ir los tiros -es una opción, las hay .....- : #include<stdio.h> #include<stdlib.h> #define N 8 int main() { int num[N]={4,8,10,14,16,15,14,9},i=0,j=0,k,aux[8],num1[8],n=0; for (i=0;i<=N;i++) if (num[i]<0 || num[i]>10) {aux[j]=num[i];j++;} for( i = 0; i < j; ++i ){ for( k = 0; k < n && num1[k] != aux[i]; ++k ) ; if( k >= n ){ num1[n] = aux[i]; ++n; } } for (i=0;i<n;i++) printf("%d ",num1[i]); return 0; }
Saluditos!.
|
|
|
|
|
|
|