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

#81
En msdos tienes el comando color:

c:\color 05

Y para usar en el lenguaje C los comandos del sistema tenemos la funcion system():

#include <stdlib.h>

system("color 05");
#82
Por lo que comentas sobre el comportamiento de tu programa eso es que seguramente te has metido en algun bucle infinito. Un ciclo infinito se produce cuando en un ciclo while o for la condicion siempre es verdadera, es decir que tenga un valor distinto de cero, y por lo tanto el ciclo nunca pararia de ejecutarse.
#83
En la parte final de tu codigo:

Código (cpp) [Seleccionar]
//Mostrar el codigo de los clientes malos

for(k=0;k<MAX;k++)
{ if(tipo[k]=='M' && deuda[k]>mayor)
     mayor=deuda[k];
     aux=cod[k];
}


Las dos sentencias que dependen del if deberian ir en un bloque:

Código (cpp) [Seleccionar]
//Mostrar el codigo de los clientes malos

for(k=0;k<MAX;k++)
{ if(tipo[k]=='M' && deuda[k]>mayor)
     {
     mayor=deuda[k];
     aux=cod[k];
     }
}
#84
Si la cuestion es que no puedes usar arreglos una posible alternativa podria ser usar una estructura. Seria una estructura de diez miembros de tipo int y cada uno almacenaria cada valor que has introducido por teclado, una vez hecho esto solo tendrias que comprobar cada miembro de la estructura para ver si alguno se repite.
#85
Creo que lo estas buscando es hacer un arreglo de cadenas. Por lo que veo en tu programa quieres imprimir por pantalla todos los clientes que cumplan dos condiciones; que sean buenos, y que tengan una deuda menor de 10.000. Estos clientes los guardas en el arreglo clie_b[MAX].

Cada cliente esta representado por una cadena pero tu arreglo es un arreglo de caracteres no de cadenas. Para ello cambia tu tipo de arreglo clie_b[MAX] a un arreglo de tipo bidimensional o mejor a un arreglo de punteros por ejemplo, en donde si podras almacenar cadenas:

Código (cpp) [Seleccionar]

/*arreglo de punteros*/
char *clie_b[MAX];

/*comprobacion de condiciones y llenado del arreglo*/
int cont = 0;
if(tipo[i]=='B' && deuda[i]<10000)
     strcpy(clie_b[cont++],codigo[i]);

/*y para evitar sorpresas terminamos de rellenar el arreglo */

while(cont != MAX)
    clie_b[cont++] = '\0';


/*Para imprimir los datos por pantalla*/
for(int i=0; i <= MAX ; i++)
       print("%s\n", clie_b[i]);

#86
Dar una salida en forma de lista ¿Te refieres a algo asi?:

Código (cpp) [Seleccionar]

int arreglo[4] = {1,2,3,4,5};

for (int i = 0; i<4; i++)
    printf("%d\n", arreglo[i]);



La salida en pantalla seria:
1
2
3
4
5
#87
Intenta hacer primero una version de tu programa para que podamos ayudarte a resolver los problemas que te vayan saliendo.
#88
Programación C/C++ / Re: Números capicúa
10 Marzo 2013, 14:33 PM
Eso es exactamente lo que consigues con el cin.get(). Es para hacer una especie de pausa justo antes de que finalice el programa y por lo tanto no se te cierrre el dev-c++.
#89
En la definicion de tu funcion motor() veo lo siguiente:
res=*x&&*y;

El operador && es el operador logico "and" el cual solo devuelve verdadero (generalmente 1) si ambas expresiones son verdaderas *x e *y, y falso (0) en los demas casos.

En el lenguaje C desde sus comienzos no existe el tipo bool, en su defecto se consideraba cualquier valor numerico distinto de cero como verdadero y el valor numerico cero como falso. En la mayoria de compiladores verdadero suele corresponder con el valor 1.

Para que me entiendas un poco mejor, un if por ejemplo

if(condicion)
     enunciado;

Evalua la condicion comprobando su valor numerico, si la condicion vale 1 entonces ejecuta el enunciado y si no vale 1 no ejecuta el enunciado.

En tu codigo
res=*x&&*y;
A la variable res le estas asignando el valor 1 en el caso de que *x e *y tengan el mismo valor, y el valor 0 en caso contrario. Cuando despues haces

switch(res)
{
    case 1: for(i=0; !kbhit(); i++)
          outport(0x378, a);
    break;
   case 2: for(i=0; !kbhit(); i++)
          outport(0x378, b);
    break;
    case 3: for(i=0; !kbhit(); i++)
          outport(0x378, c);
    break;
    case 4: for(i=0; !kbhit(); i++)
          outport(0x378, d);
    break;


La variable res solo podra ejecutar el case 1: ya que solo podra tener el valor 1 o el valor 0.
#90
En tu scanf() por ejemplo:
scanf ("%d",&array[i]);

Estas usando la variable i, la cual todavia no le has dado un valor. Si fuese una variable global de foma implicita quedaria inicializada con el valor cero en su declaracion. Pero en este caso es una variable local dentro de main() con lo que su valor sera un valor basura.

Antes de usar la variable asignale algun valor.