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

#1181
CitarCreo que el planteamiento es quitar todas las posbles monedas de 0.249, a lo que resta las de 0.099 y así sucesivamente. ¿Por qué esos valores y no 0.25 y 0.10?. Por los dichosos redondeos que hacen que cantidad sea "ligeramente" inferior a partir del primer cálculo. Con este planteamiento resulta:
Código (cpp) [Seleccionar]
#include <iostream>
#include <stdio.h>

using namespace std;
int main(){

    float cantidad;
    int e = 0,f = 0,g = 0,h = 0;

    cout << "escribe la cantidad: " ;
    cin >> cantidad;
    while(cantidad >= 0.249)
        {
            e++;cantidad -= 0.25;

         }
     cout << "de 0.25 = " <<  (e)   << endl;
     while(cantidad >= 0.099)
        {
                 f++;cantidad -= 0.1;

        }
    cout << "de 0.10 = " <<  (f) << endl;
    while(cantidad >= 0.049)
        {
                g++;cantidad -= 0.05;

        }
    cout << "de 0.05 = " <<  (g) << endl;
    while(cantidad >0)
        {
                h++;cantidad -= 0.01;

        }
    cout << "de 0.01 = " <<  (h) << endl;
    return 0;
}

Saludos!.
#1182
Cita de: Oblivi0n en  5 Noviembre 2012, 17:51 PM
El caso es tener 2 variables, uno para el maximo, y otro para el submaximo, cuando el maximo cambie, submaximo pasa a valer el anterior valor de maximo
CitarNo exactamente, ya que un número podría ser menor que max y superior a cuasi_max, con lo que éste tomaría su valor.
Sin necesidad de ordenar previamente:
Código (cpp) [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N   15
int main()

{
   int i,a[N],aux,max,cuasi_maxi;
   srand(time(0));

   for (i = 0; i < N; i++)
       {
           a[i]= 25+rand() % (101-25) ;
           printf("%d, ", a[i]);

       } printf("\b\b \n");
   if (a[0]<=a[1]) {max= a[1]; cuasi_maxi=a[0];}
   else {max= a[0]; cuasi_maxi=a[1];}
   for (i = 2; i < N; i++)
   if (a[i]>=max) {aux=max;max=a[i];cuasi_maxi=aux;}
   else if (a[i]>cuasi_maxi ) {cuasi_maxi=a[i];}
       printf("%d   %d",max,cuasi_maxi);
   return 0;
}

Saludos!.
#1183
CitarSin iteraciones, sólo tienes que poner en MIN y MAX los valores que deseas imprimir, por ejemplo:
Código (cpp) [Seleccionar]
#include <stdio.h>

void uno(int MIN, int MAX) ;
void uno(int MIN, int MAX) {
int i;
for(i=MIN; i<=MAX; i++) {
printf("%c   ", i);
}
}

int main(){
    int  MIN1 =48,MAX1 =57,MIN2=65,MAX2= 90;
    uno(MIN1,MAX1);
    puts("\n");
    uno(MIN2,MAX2);
    return 0;
}

Saludos!.
#1184
Cita de: Jaes en  5 Noviembre 2012, 03:32 AM
¿Cómo debería hacer para que imprimiera de 0 a 2 y de 6 a 9? ¿Es sencillo o estoy intentando subir peldaños demasiado rápido?
Para que lo veas mejor he puesto a imprimir enteros:
Código (cpp) [Seleccionar]
#include <stdio.h>

void uno(int MIN, int MAX) ;
void uno(int MIN, int MAX) {
int i;
for(i=MIN; i<=MAX; i++) {
printf("%d   ", i);
}
}

int main(){
   int  MIN1 =0,MAX1 =2,MIN2=6,MAX2= 9;
   uno(MIN1,MAX1);
   puts("\n");
   uno(MIN2,MAX2);
   return 0;
}

Saludos!.
#1185
Cita de: JuanPio en  4 Noviembre 2012, 22:01 PM
Hola! Alguien me puede echar un cable con este ejercicio?
Citar¿No habíamos quedado en que no se hacen tareas?. Yo no vi colgado ningún código.
¡Ojo!, no planteo que esté mal o bien, sino que el criterio es muy relativo por lo que observo.
Saludos!.
#1186
El segundo for compara cada nuevo valor con todos los anteriores introducidos y si encuentra uno igual sale del bucle y no se toma ese valor, y como no se toma se restituye los contadores con i--  y j--, retornando a continuación al primer for, donde se continua la introducción de los números. No hace falta ningún goto.
Si quieres la posición del valor puedes cambiar

Código (cpp) [Seleccionar]
printf ("%d  ",array[i]);
por esta otra:
Código (cpp) [Seleccionar]
printf ("\ncomponente %d =  %d",i+1,array[i]);
Por cierto, el código está en C, no en C++.
#1187
CitarCreo que esto es justo lo que pides:
Código (cpp) [Seleccionar]
#include <stdio.h>
#define N   10
int main(){
   int array[N],array_[N],i,j;
   for (i=0;i<N;i++){
           printf ("Introducir numero:");
           scanf ("%d",&array[i]);
           for (j=0;j<i;j++) {
                   if (array[j]==array[i]){
                          printf ("Numero repetido.  ");i--;break;
                      }
               }
       }
   for (i=0;i<N;i++)
       printf ("%d  ",array[i]);
   return 0;
}

Saludos!.
#1189
Cita de: FMR en  2 Noviembre 2012, 06:23 AM
ya solucioné ese problema, sólo que tengo otro, aparte de aceptar sólo 8 dígitos, necesito que sólo sean números y no letras, ¿saben como le puedo hacer con eso?.
CitarUna opción sería tomar N como cadena y convertirla a entero, para después contar el número de dígitos:
Código (cpp) [Seleccionar]

#include<iostream>
#include<cstdlib>
using namespace std;

int main() {
    char N[20];
    int n,contador=0;
    while (contador!=8)
    {
        cout<<"Introduzca 8 digitos: ";
        cin>> N;
        n = atoi (N);
        cout<<n<<endl;
        contador=0;
            while(n>0){
            contador++;
            n=n/10;
    }
        cout<<contador<<endl;
        }

    return 0;
}

Saludos!.