我如何在结构中传递(和更改)此数组P(在dinamic矩阵中分配,mtrix [] [])
typedef struct product
{
float P[5]; // I need to operate inside this array from my function.
}PT;
这是我的功能
int memo () // don't know how to declare /* i need to change the float of a specific position of the array inside the specific structure */
{
int x,y,pd;
printf (" put x\n");
scanf ("%d", &x);
printf ("put y\n");
scanf ("%d", &y);
printf ("put pd\n");
scanf ("%d",&pd);
printf ("insert new float\n"); /* i tried a lot of way but cant change nothing the code is incomplete because i really don't know how to change the specific place of the array inside the struct i selected */
return ;
}
从现在开始谢谢你,抱歉我的英文不好
已添加代码 - 这是意大利语 - 这是我尝试解决大量时间的行为 - 需要像收银机一样使用它来获得更多卖家和更多天,但每个卖家只能访问五类产品(并且selled的东西每天添加为特定浮点的不同单元格中的唯一总和)希望解决这个问题我觉得真的很傻-.-
#include <stdlib.h>
#include <stdio.h>
int END = 0; Need this global to escape from the program
struct prodotti // prodotti tabaccheria un vettore di 5 per cinque categorie.
{
float P[5];
};
int main ()
{
printf (" ************************************\n");
printf (" * Gestionale Cassa Tabaccheria *\n");
printf (" ************************************\n");
struct prodotti // prodotti tabaccheria un vettore di 5 per cinque categorie.
{
float P[5];
};
int v,d,z,i,pd,s,j,k, tv;
float tot;
struct prodotti **ptr;
printf("Quanti venditori vuoi gestire?\n");
scanf ("%d", &s);
ptr=(struct prodotti**) calloc(s, sizeof(struct prodotti*));
if (ptr == NULL){
printf ("Errore di allocazione\n");
return 0;};
printf ("Di quanti giorni vuoi gestire le vendite?\n");
scanf ("%d", &d);
for (i=0; i<s; i++)
{
ptr[i] = (struct prodotti*) calloc(d, sizeof(struct prodotti) );
if (ptr[i] == NULL){
printf ("Errore di allocazione\n");
return 0;};
};
}
printf ("\n");
system ("PAUSE");
for (;;)
{
if (END==1){
;
return 0;};
gestore_funzioni(ptr[0][0],d,s);
};
return 0 ;
};
int gestore_funzioni (struct prodotti** ptr, int d, int s)
{
system("cls");
int g;
printf("\n\n");
printf ("Cosa vuoi fare ora?\n");
printf ("Immettere dei dati vendita = 1\n");
printf ("Scovare dei dati di vendita specifici = 2\n");
printf ("Trovare il migliore venditore per periodo di tempo = 3\n");
printf ("Trovare prodotto che ha venduto maggiornemente nel periodo di tempo = 4\n");
printf ("Uscire dal programma = 5\n");
do {
fflush (stdin);
scanf ("%d", &g);
} while (g<0||g>5);
if (g==1){memo(ptr,d,s);}; // I ACCESS to MY function from THIS
if (g==2){visualizzatore(ptr,d,s);};
if (g==3) {best_seller(ptr,d,s); };
if (g==4);//{ /*best_product(ptr[0][0],d); };*/best_seller(ptr[0][0],d); };
if (g==5){uscita();};
return ;
};
memo ()
{
int j,k,pd,i;
printf (" Immetti il codice del venditore\n");
scanf ("%d", &k);
printf ("Di quale giorno vuoi memorizzare le vendite?\n");
scanf ("%d", &j);
printf ("Immetti il codice prodotto\n");
// codici_prodotto();
scanf ("%d",&pd);
printf ("Inserisci il venduto in Euro\n");
scanf ("%f", ptr[k][j].P[pd]);
printf("%.2f", ptr[k][j].P[pd]);
return ;
}
答案 0 :(得分:0)
你的问题不是那么清楚。您可以创建结构的实例:
PT yourArray;
// you can now insert the values;
int i;
for(i=0;i<5;i++) {
printf("Enter the element %d", i+1);
scanf("%f", yourArray.P[i]);
}
这样您就可以在数组中输入值。 同样,您可以通过分配特定值或表达式来修改第i个元素: yourArray.P [i] = ... //某个表达式或值
答案 1 :(得分:0)
使用...
mtrix[x][y]->PT->P[i];
您可以访问P成员。
所以,让我们说你想在P [0]上添加一个浮点数,它在PT中,这是在mtrix [0] [0]内,你可以这样做:
printf ("insert new float\n");
scanf ("%f", &mtrix[0][0]->PT->P[i]);