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

#21
#include <stdio.h>
#include <conio.h>
#include <ctype.h>
#include <string.h>
#define MAX 30

void main()
{
int i=0;
float deuda[MAX];
char codigo[MAX][20],tipo[MAX],resp,clie_b[MAX];
//Carga de los Vectores
do
{ clrscr();
   printf("\n\nIndique el codigo del Cliente: ");
   scanf("%s",&codigo[i]);
   printf("\n\nQue tipo de cliente es (B=Bueno, R=Regular, M=Malo)? ");
   scanf("%c",&tipo[i]);
   tipo[i]=toupper(getchar());
   printf("\n\nIndique su deuda en Bolivares: ");
   scanf("%f",&deuda[i]);
     if(tipo[i]=='B' && deuda[i]<10000)
     {strcmpi(clie_b[i],codigo[i]);
      strlen(clie_b[i]);
     }
   printf("\n\nHay otro cliente?...S/N ");
   scanf("%c",&resp);
   resp=toupper(getchar());
}while(resp=='S' && i<MAX);
clrscr();
printf("\n\nLos Clientes Buenos con deuda menor de 10000bs son %s\n"clie_b[MAX]);
getchar();
}


Esto es mas o menos lo que llevo, a partir de la linea 22 es donde no se como escribir el codigo para que me guarde las cadenas de caracter cumpliendo con las condiciones y luego mostrarlas todas en una salida, estuve leyendo un poco de la funcion strlen, pero me dice que lo que me da es la longitud de la cadena de caracteres, entonces no creo que me pueda servir
#22
algo asi, solamente que el arreglo que tengo que utilizar es una cadena de caracteres
#23
Buenas.
Tengo la duda, o mejor dicho, nose como hacer esto. tengo que hacer un ejercicio en lenguaje C (utilizo el Builder) en donde debo dar una salida en forma de lista, pero los datos que deben salir en esa lista deben cumplir unas condiciones previamente. Tengo que usar arreglos unidimensionales. Queria saber si alguien me podria ilustrar con un ejemplo explicandome brevemente lo que se debe hacer, o si me pueden facilitar una guia donde expliquen este tema (dar una salida en forma de lista) gracias !
#24
Gracias por sus consejos. tengo este nuevo problema xd
Este programa debe pedirle a unos estudiantes 2 indices diferentes que determinaran una beca para ellos, ademas al final el programa debe buscar a los estudiantes y decirle la beca que tendran. El programa funciona bien pero al momento de buscar, en el caso de que el estudiante exista, me da la salida de la beca que le corresponde y luego sale la salida como si el estudiante no existiera :S este es el codigo.

#include <stdio.h>
#include <ctype.h>
#define MAX 50
int main()
{
    int expediente[MAX],econo[MAX], rsdncl[MAX],i=0,k,ban,aux;
    char beca[MAX],resp;
   
     do
     {
           system("cls");
           printf("\n\nIngrese el numero del expediente del estudiante: ");
           scanf("%d",&expediente[i]);
           printf("\n\nIngrese el indice economico del estudiante(del 1 al 100): ");
           scanf("%d",&econo[i]);
           printf("\n\nIngrese el indice residencial del estudiante(del 1 al 100): ");
           scanf("%d",&rsdncl[i]);
            if(econo[i]<40 && rsdncl[i]<35)
               beca[i]='A';
            else
               if(econo[i]<65 && rsdncl[i]<60)
                   beca[i]='B';
               else
                   beca[i]='C';
           printf("\n\nAlgun estudiante quiere solicitar la beca del comedor:..S/N? ");
           scanf("%c",&resp);   
           resp=toupper(getchar());
          i++;
     }while(resp=='S');
     
     system("cls");
     printf("\n\nIngrese el No. del expediente a consultar: ");
     scanf("%d",&aux);
     k=0;
     
      do
      {
          if(aux==expediente[k])
          {  printf("\n\nEl expediente %d tiene una beca de tipo %c",expediente[k],beca[k]);
             getch();
             break;
          }
          else
            ++k;
      }while(ban && k<i);
     
      if(ban)
      {printf("\n\nEl Expediente buscado no existe!!! ");
       getch();
      }
}


lo de "ban" significa banderas que me lo dieron en la universidad que significa que cuando la bandera vale 0 es falso y cuando vale 1 o es diferente de 0 es verdadero.  He buscado ese tema por internet para estudiar un poco esta funcion pero no lo consigo.

Otro temita que entiendo es por que en esta parte del codigo:
      do
      {
          if(aux==expediente[k])
          {  printf("\n\nEl expediente %d tiene una beca de tipo %c",expediente[k],beca[k]);
             getch();
             break;
          }

la parte del "break" lo tuve que incluir porque si no lo incluia, al momento de dar la salida de la beca del estudiante, la da pero nunca terminaba. Cada vez que le doy enter, el programa me volvia a dar la salida, pero no tengo del todo claro porque metiendo el break si me funciona. Alguien que porfavor me explique :) xD
#25
Código (cpp) [Seleccionar]
#include <stdio.h>
void LimpiarBuffer()
{
   while(getchar() != '\n' && getchar() != EOF);
}

Que significa esto? y porque al dar la salida en la linea 46 pones getchar() 2 veces consecutivas?
#26
ups! envie el codigo mal. bueno lo de incrementar la variable antes lo tenia bien solamente que me puse creativo y comense a mover variables de un lado a otro a ver si me funcionaba. lo que me estaba causando el problema era la libreria conio.h pero entonces si decidiera meter este codigo con Builder, podria usar conio.h y la funcion fflush(stdin) sin problemas?.
#27
Buenas !

tengo un problemita. Veran me estoy iniciando en el mundo de la programacion, y de momento estoy aprendiendo cosas basicas del lenguaje C. Tengo un ejercicio que debo con arreglos unidimencionales,  y al final debo hacer una busqueda de un mayor. El problema viene con que el programa me compila normal, pero cuando lo voy a correr, me lee los datos bien, pero cuando va a dar la salida del mayor me salen letras raras o aveces no me sale nada. Este es el codigo:

#include <stdio.h>
#include <conio.h>
#include <ctype.h>
#include <string.h>
#define MAX 50

int main()
{
int k,i=0,mayor=-1;
float gasol_lt[MAX],rcdo[MAX],ConKmLt;
char fecha[MAX][30],resp,aux[30];



   do
   {     system("cls");
         printf("\n\nFecha en que recargo el tanque de gasolina(dd/mm/aaaa): ");
         fflush(stdin);
         scanf("%s",&fecha[i]);
         printf("\n\nCuantos litros de gasolina echo en el tanque: ");
         fflush(stdin);
         scanf("%f",&gasol_lt[i]);
         printf("\n\nCuantos Km. recorrio: ");
         fflush(stdin);
         scanf("%f",&rcdo[i]);
          ConKmLt=rcdo[i]/gasol_lt[i];
         printf("\n\nUsted gasto %.2f km/lt",ConKmLt);
         getch();
         printf("\n\nDesea ingresar los datos nuevamente:...S/N ");
         scanf("%c",&resp);
         resp=toupper (getch());
          k++;
    }while(resp=='S' && i<MAX);
   
   
   for(k=0;k<i;k++)
   {    if(gasol_lt[k]>mayor)
        { mayor=gasol_lt[k];
          strcpy(aux,fecha[k]);        
        }
   }
   printf("\n\n\nLa Fecha en que recargo mas gasolina fue %s",aux);
   getch();
}



Utilizo el compilador Dev C++, pero el programa esta en C. He leido algunos post para ir tomando algunos tips para hacerlo mejor. Pero me gustaria que me dijeron si asi como esta ese codigo esta bien, o se puede hacer mejor, porque por ejemplo yo no veo la diferencia de usar el fflush(stdin) en los codigos, porque si los omitiera el programa corre normal, aunque los coloco porque lei que era recomendable que se usaran, pero no entendi muy bien porque. Bueno de momento es todo, gracias!