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 - leosansan

#1141
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:
Código (cpp) [Seleccionar]

#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
Cita de: muymuyperdido en 24 Noviembre 2012, 21:45 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:
Código (cpp) [Seleccionar]
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
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
                printf("\n");

CitarY 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
CitarTienes un incremento de más cuando el último sumando es cero:
Código (cpp) [Seleccionar]
#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
En las expresiones:
Código (cpp) [Seleccionar]
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
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:

Código (cpp) [Seleccionar]

#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 C/C++ / Re: ayuda por favor en c++
22 Noviembre 2012, 13:39 PM
Cita de: olvin en 18 Noviembre 2012, 18:35 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
CitarTe 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:
Código (cpp) [Seleccionar]
#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!.
#1148
Programación C/C++ / Re: ayuda en c
21 Noviembre 2012, 20:33 PM
CitarNo te cortes y cuelga "tu" codigo. Con eso ya se vé que te lo estas currando y se te ayudará.
Saluditos!.
#1149
Cita de: Oblivi0n en 21 Noviembre 2012, 11:57 AM
#include <stdio.h>


int  isInRange(int n,int limiteInferior,int limiteSuperior){
if( n >= limiteInferior || n <= limiteSuperior){
return TRUE;
}else{
return FALSE;
}
}
}

CitarTiene el problema de que el 14 o cualquier otro numero que se repita, se repetirá en la respuesta.
Saluditos!.
#1150
Cita de: pefo en 20 Noviembre 2012, 19:37 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)
CitarVamos 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 .....- :
Código (cpp) [Seleccionar]

#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!.