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

#941
Cita de: naderST en 10 Marzo 2013, 08:15 AM
Donde declaras la variable r como float, la declaras como char y en el scanf() utilizas %c y no %f.

Y además se repite demasiado código. Creo que con un switch estaría más "contenido" el programa:

Código (cpp) [Seleccionar]
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
 float a, b;
 int o;
 char r;
 printf("Ingrese el valor de a: ");
 scanf("%f", &a);
 printf("\nIngrese el valor de b: ");
 scanf("%f", &b);
 while (1)  {
       printf("\nEscoja la operacion a realizar: \n");
       printf("\n1.- a+b\n");
       printf("\n2.- a-b\n");
       printf("\n3.- a*b\n");
       printf("\n4.- a/b\n\n");
       scanf("%d", &o);
       switch (o){
       case 1:
           printf("\n%g + %g = %g\n", a, b,a+b);
           break;
       case 2:
           printf("%g - %g = %g", a, b, a-b);
           break;
       case 3:
           printf("%g*%g = %g", a, b, a*b);
           break;
       case 4:
           if(b==0)
               printf("Division no definida para b = 0");
           else  {
               printf("%g/%g = %g", a, b, a/b);
           }
           break;
       default:
           puts("\nOperacion no valida");
           break;
       }
       printf("\n\nDesea realizar otra operacion?\n");
       printf("\n1.- S\n");
       printf("\n2.- N\n\n");
       scanf(" %c", &r);
       if (r!='s' && r!='S')
           return 1;
   }
    return 0;
}



Saluditos!. ...
#942
Cita de: corniog en 10 Marzo 2013, 04:35 AM
Hola amigos necesito hacer un programa en lenguaje c que me permita ingresar por teclado el iten, el codigo del producto y el monto, y poder listar 10 productos al menos. no se que hacer y ya no tengo casi tiempo.....................

* Para empezar tendrás que declarar las variables a usar, por ejemplo:

Código (cpp) [Seleccionar]
int item[10];

y análogamente con código y monto, aunque este último sería float.

* A continuación tienes que ingresarlos , cosa que haces con scanf y con un bucle porque son diez: por ejemplo:

Código (cpp) [Seleccionar]
for (i=0;i<10;i++)
   scanf ("%d",item[i]);


* Al final mostralos con un bucle y printf:

Código (cpp) [Seleccionar]
for (i=0;i<10;i++)
   printf ("item %d: %d",i+1,item[i]);


* Ten en cuenta que con monto, al ser float usaras %f o %g.

* Con esto tienes para empezar tú el código. Si tienes dudas pon lo que lleves hecho y te ayudaremos.

Saluditos!. ...
#943
Programación C/C++ / Re: Números capicúa
10 Marzo 2013, 01:26 AM
Pues me fastidiaste el código que te había preparado:


Código (cpp) [Seleccionar]
#include <iostream>
#include <cstring>
#include <cstdlib>

using namespace std;

int main(){
     int i;
     char cad[100],cad1[100];
     cout << "Digite un numero: "; cin >> cad;
     for (i=0;i<cad[i]!='\0';i++)
        cad1[(strlen (cad))-i-1]=cad[i];
     cad1[(strlen (cad))]='\0';
    if (strcmp(cad1, cad)!=0 || cad1[0]=='0')
        cout << "El numero "<<atoi (cad1 )<<" no es capicua"<<endl ;
    else
        cout << "El numero "<<(cad ) <<" es capicua"<<endl;
     cin.get();
     return 0;

}



Saluditos!. ...
#944
De todas formas, si sólo se trata de eliminar un posible carácter creo más razonable el dejar un espacio en blenco en el scanf, como ya comentamos en otro tema,

Saluditos!
.... :silbar:
#945
Cita de: jps96 en  9 Marzo 2013, 22:54 PM
¡¡Infinitas gracias amchacon y leosansan!!  ;-)
Problema resuelto  :D

De nada, de nada  >:D. Da gusto ayudar cuando la gente postea un código, aunque no funcione ni de lejos, y concrete las preguntas como ha sido tu caso y si además hay "piques" sanotes más divertido aún. De verdad, me lo he pasado "pipa".

Saluditos!
. ....
#946
Cita de: jps96 en  9 Marzo 2013, 20:07 PM
Tienes razón amchacon! Se me había pasado por alto por completo.
Por último............................. ¿cómo podría el programa saber cuál es el número mayor de cada fila y cada columna? ¿Alguna explicación?

Por ejemplo así:

Código (cpp) [Seleccionar]
#include <iostream>

using namespace std;
int main()
{
   char diasSemana [7][10] ={"LUNES", "MARTES", "MIERCOLES", "JUEVES", "VIERNES", "SABADO","DOMINGO"};
   char a,cadenas [5][8]={ "A3","TV1" ,"CUATRO" ,"T4 " ,"SEXTA"};;
   float matriz[][8]={{1   ,   2     ,   1.4   ,    4.6   ,    5     ,     7     ,     6.2   ,   6.2},
                       {2   ,   3     ,   3.6   ,    5     ,    4.5   ,     2.7   ,     5.2   ,   5.2},
                       {3   ,   2.5   ,   3.5   ,    3     ,    6     ,     3     ,     5.1   ,   5.1},
                       {4   ,   3.2   ,   4.5   ,    2     ,    2.2   ,     1     ,     3.5   ,   0.9},
                       {5   ,   1.7   ,   1.3   ,    4.5   ,    4.7   ,     2.8   ,     4.8   ,   3.3}};
   int i,j ,indice;
   float suma=0,mayor=0;
   for(i=0;i<7;i++)
       cout<<"    "<<diasSemana [i];
   cout<<endl;

    for (i=0;i<5;i++)
       {
           for(j=1;j<8;j++)
               {
                   if (j>=1)
                       suma +=matriz[i][j];
                   if (j==0)
                       cout<<"      "<<cadenas[i];
                   cout<<"        "<<matriz[i][j];
                }
           cout<<"        La audiencia de la television "<<cadenas [i]<<" es "<<suma<<endl;
           if (suma>mayor)
               {
                   mayor=suma;
                   indice=i;
               }
           suma=0;
       }
   cout<<endl<<"La television mas vista fue "<<cadenas [indice]<<" con "<< mayor<<" millones de espectadores "<<endl<<endl;
    mayor=0;
    for(j=1;j<8;j++)
       {
           for(i=0;i<5;i++)
               suma+=matriz[i][j];
           cout<<"La audiencia del "<<diasSemana [j-1]<<" fue "<<suma<<endl;
           if (suma>mayor)
               {
                   mayor=suma;
                   indice=j;
               }

         suma=0;
       }
   cout<<endl<<"El dia de mas audiencia fue el "<<diasSemana [indice-1]<<" con "<< mayor<<" millones de espectadores "<<endl<<endl;
   cin.get();
   return 0;
}



Código (cpp) [Seleccionar]
   LUNES    MARTES    MIERCOLES    JUEVES    VIERNES    SABADO    DOMINGO
       2        1.4        4.6        5        7        6.2        6.2        La audiencia de la television A3 es 32.4
       3        3.6        5        4.5        2.7        5.2        5.2        La audiencia de la television TV1 es 29.2
       2.5        3.5        3        6        3        5.1        5.1        La audiencia de la television CUATRO es 28.2
       3.2        4.5        2        2.2        1        3.5        0.9        La audiencia de la television T4  es 17.3
       1.7        1.3        4.5        4.7        2.8        4.8        3.3        La audiencia de la television SEXTA es 23.1

La television mas vista fue A3 con 32.4 millones de espectadores

La audiencia del LUNES fue 12.4
La audiencia del MARTES fue 14.3
La audiencia del MIERCOLES fue 19.1
La audiencia del JUEVES fue 22.4
La audiencia del VIERNES fue 16.5
La audiencia del SABADO fue 24.8
La audiencia del DOMINGO fue 20.7

El dia de mas audiencia fue el SABADO con 24.8 millones de espectadores



Saluditos!. ....

P.D: ¡ Y sin vectores !, sólo con mayor e indice.
#947
Tal como te lo deje, en mi código sumaba los números de forma correcta, el primer número de cada fila servía para indicar la impresión de la TV en cada caso, no se sumaba. Podrían ser esos primeros números cualesquiera, pero si no los pones no vale el >=1,porque como los tienes ahora se "come" la primera columna.

Saluditos!. ...


P.D Usa las etiquetas GeSHi de C++, así el código sale coloreado y es más fácil de seguir.
#948

No tiene porque ser double, con un float para el tamaño de números que maneja es suficiente.

Con las cadenas incluidas, aunque te queda darle "forma" a la salida:


Código (cpp) [Seleccionar]
#include <iostream>

using namespace std;
int main()
{
char a,cadenas [5][7]={ "A3","TV1" ,"CUATRO" ,"T4 " ,"SEXTA"};;
double matriz[][8]={{1   ,   2     ,   1.4   ,    4.6   ,    5     ,     7     ,     6.2   ,   6.2},
                   {2   ,   3     ,   3.6   ,    5     ,    4.5   ,     2.7   ,     5.2   ,   5.2},
                   {3   ,   2.5   ,   3.5   ,    3     ,    6     ,     3     ,     5.1   ,   5.1},
                   {4   ,   3.2   ,   4.5   ,    2     ,    2.2   ,     1     ,     3.5   ,   0.9},
                   {5   ,   1.7   ,   1.3   ,    4.5   ,    4.7   ,     2.8   ,     4.8   ,   3.3}};
int i,j ;
float suma=0;
cout<<"          Lunes, Martes, Miercoles, Jueves, Viernes, Sabado, Domingo"<<endl;
//   //i es el numero de filas
i=0;
while(i<5)

{
//  for(j=0;j<8;j++)
j=0;
while(j<8)
{
if (j>=1)
   suma=suma+matriz[i][j];
if (j==0)
   cout<<"      "<<cadenas[i];
cout<<"      "<<matriz[i][j];
 j++;
}
cout<<"           La suma de la fila "<<i+1<<" es "<<suma<<endl;
suma=0;
i++;
}
for(j=0;j<7;j++)
{
 for(i=0;i<5;i++)

 suma=suma+matriz[i][j];
 cout<<"La suma de la columna "<<j+1<<" es "<<suma<<endl;
 suma=0;
}
return 0;
}


Saluditos!
................
#949
Cita de: jps96 en  9 Marzo 2013, 16:26 PM
...........................................
Lo que ocurre es que no me suma bien, no sé por qué


Tienes que declarar suma como float en lugar de int.

Saluditos....

P.D:Tienes una columna de más al sumar. que tendrás que descontar desde los índices, 1 en lugar de cero

#950
se colo esto en lugar de reeditar. no sirve