› Foros › Multiplataforma › Desarrollo
//INCLUDES
#include <stdio.h>
#include <string.h>
#include <iostream>
//CONSTANTS
#define NCLIEN 2
#define NPROD 2
//VARIABLES-VECTORS
typedef struct{int dia, mes, any;}fecha;
typedef struct{
char ref[5];
char nom[16];
int preu_u;
int quan;
}producte;
typedef struct{
char nif[10];
char nom[16];
char cog1[16];
char cog2[16];
}client;
typedef struct{
char ref[5];
int unitat;
char dni[10];
fecha compra, entrega;
float preu_total;
}comanda;
typedef struct{
producte p[NPROD];
client cl[NCLIEN];
comanda co[NCLIEN];
}tenda;
tenda t;
int op;
//PROTOTIPS FUNCIONS
int menu();
int iniprod(tenda t);
int inicli(tenda t);
void menys_deu(tenda t);
int menys_popular(tenda t);
int mes_car(tenda t);
//FUNCIÓ MAIN
int main(){
iniprod(t);
inicli(t);
do{
op=menu();
switch(op){
case 1:
menys_deu(t);
break;
case 2:
printf("El producte menys popular es el %i, %s", menys_popular(t), t.p[menys_popular(t)].nom);
break;
case 3:
printf("El mes producte mes car es el %i, %s", mes_car(t), t.p[mes_car(t)].nom);
break;
default:
printf("opcio no valida\n");
}
}while(op!=6);
system("PAUSE");
}
//IMPLEMENTACIÓ DE FUNCIONS
int menu(){
int i;
printf("\n\n\tOpcions:\n\n");
printf("\t\t1)Mostrar tots els productes amb menys de 10 unitats \n");
printf("\t\t2)Informar quin es l'article menys 'popular'\n");
printf("\t\t3)Informar quin es el producte mes car\n");
printf("\t\t6)Eixir\n");
scanf("%i", &i);
return i;
}
int iniprod(tenda t){
int i;
for(i=0;i<NPROD;i++){
printf("________________________\n");
printf(" Numero producte %i\n", i);
printf("________________________\n");
printf("Numero referencia:\n");
fflush(stdin);
gets(t.p[i].ref);
printf("Nom producte:\n");
fflush(stdin);
gets(t.p[i].nom);
printf("Preu unitari:\n");
fflush(stdin);
scanf("%i", &t.p[i].preu_u);
printf("Quantitat:\n");
scanf("%i", &t.p[i].quan);
}
printf("%i\n", t.p[0].preu_u);
printf("cadena:%s:",t.p[0].nom);
}
int inicli(tenda t){
int i;
for(i=0;i<NCLIEN;i++){
printf("________________________\n");
printf(" Numero client %i\n", i);
printf("________________________\n");
printf("NIF:\n");
fflush(stdin);
gets(t.cl[i].nif);
printf("Nom:\n");
fflush(stdin);
gets(t.cl[i].nom);
puts(t.cl[i].nom);
printf("Primer cognom:\n");
fflush(stdin);
gets(t.cl[i].cog1);
printf("Segon cognom:\n");
fflush(stdin);
gets(t.cl[i].cog2);
}
}
void menys_deu(tenda t){
int i;
for(i=0;i<NPROD;i++){
if(t.p[i].quan<10){
printf("%s\n", t.p[i].nom);
}
}
}
int menys_popular(tenda t){
int quan, posquan, i;
posquan=0;
quan=t.p[0].quan;
i=1;
printf("%d", quan);
while(i<NPROD){
if(quan<t.p[i].quan){
posquan=i;
quan=t.p[i].quan;
}
i++;
}
return posquan;
}
int mes_car(tenda t){
printf("%i\n", t.p[0].preu_u);
printf("cadena:%s:",t.p[0].nom);
int poscar, i, car;
poscar=0;
car=t.p[0].preu_u;
i=1;
printf("%i", car);
while(i<NPROD){
if(car<t.p[i].preu_u){
poscar=i;
car=t.p[i].preu_u;
}
i++;
}
return poscar;
}
int main() {
....
tenda=la_funcion(tenda);
....
}
tenda la_funcion(tenda t) {
..
t[algo]++;
..
return t;
}
Eleazar escribió:Si las variables las declaras fuera del main, son de ámbito global, no?
Eleazar escribió:El problema no viene de q pasas tenda por parámetro? Simplemente, podrías acceder a la structura desde la funcion (o voy errado?)