Итак, я довольно новичок в программировании в целом и работаю над проектом, в котором мне нужно создать пару функций. С первой функцией все в порядке, но я не могу понять, как передать значения из первой функции во вторую функцию. Я знаю, что мне нужно использовать некоторые указатели для решения проблемы, но мне было просто интересно, есть ли проще путь, пока я не овладею использованием указателей. Заранее спасибо!
Вот мой грязный код
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <string.h>
#include <malloc.h>
#define START_SIZE 2
int number_of_branches=0;
typedef struct
{
int Month_num[12];
double sales[12];
bool active;
}Branch;
double function_one(void);
double function_two(void);
double function_three(void);
void function_four(void);
int main()
{
int User_Selection;
do
{
printf("1. Enter sales data.\n2. Add a record for a new branch.\n3. Delete record of an existing branch.\n4. Calculate total sales.\n5. Calculate percentage share of each branch.\n6. Determine the month of peak sales.\n7. Display sales of a specific month.\n8. Display sales of a specific branch.\n0. Done\n");
scanf("%i",&User_Selection);
switch (User_Selection)
{
case 0:
{
printf("Thankyou for your time :)\n");
break;
}
case 1:
{
function_one();
break;
}
case 2:
{
function_two();
break;
}
case 3:
{
function_three();
break;
}
case 4:
{
function_four();
break;
}
default:
{
printf("Please enter a valid input :)\n");
break;
}
}
}
while(User_Selection!=0);
}
double function_one(void)
{
//FILE *file = fopen("Sales.csv","a");
printf("Ender number of branches: ");
scanf("%d",&number_of_branches);
printf("\n");
Branch Branches[number_of_branches];
RecPointer r;
r = (RecPointer)malloc(sizeof(Rec));
//printf("%d",number_of_branches);
for(int b=0; b<number_of_branches; b++)
{
printf("Sales for branch %d: \n",(b+1));
for(int x=0;x<12;x++)
{
printf("Sales for month %d: ",(x+1));
scanf("%lf",&Branches[b].sales[x]);
//printf("\n%lf\n",Branches[b].sales[x]);
//fprintf(file, "%d,%.2lf\n",x,Branches[b].sales[x]);
//fprintf(file,"\n");
}
printf("\n\n");
}
//fclose(file);
printf("Branch\\Month:\t1\t2\t3\t4\t5\t6\t7\t8\t9\t10\t11\t12\n");
for(int b=0; b<number_of_branches; b++)
{
printf("Branch %d:\t",(b+1));
for(int x=0;x<12;x++)
{
printf("%.2lf\t",(Branches[b].sales[x]));
}
printf("\n");
}
return 0;
Branch * Branchplace = (Branch *) malloc(sizeof(Branch));
}
double function_two(void)
{
Branch Branches[number_of_branches++];
printf("Sales for the new branch number %d\n",(number_of_branches));
for(int x=0;x<12;x++)
{
printf("Sales for month %d: ",(x+1));
scanf("%lf",&Branches[number_of_branches].sales[x]);
//printf("\n%d\n",x);
}
printf("\n");
printf("Branch\\Month:\t1\t2\t3\t4\t5\t6\t7\t8\t9\t10\t11\t12\n");
for(int b=0; b<number_of_branches; b++)
{
printf("Branch %d:\t",(b+1));
for(int x=0;x<12;x++)
{
printf("%.2lf\t",(Branches[b].sales[x]));
//printf("\n%lf\n",Branches[b].sales[x]);
//fprintf(file, "%d,%lf",x,Branches[b].sales[x]);
}
printf("\n");
}
return 0;
}
double function_three(void)
{
Branch Branches[number_of_branches];
int deleted_branch;
printf("Which branch do you want to delete?\n");
scanf("%d",&deleted_branch);
Branches[deleted_branch].active=false;
printf("Deleted branch %d\n",deleted_branch);
return 0;
}
void function_four(void)
{
Branch Branches[number_of_branches];
for(int n=0;n<number_of_branches;n++)
{
for(int x=0;x<12;x++)
printf("%.lf\n",Branches[n].sales[x]);
}
}