Why I'm doing is base on this question:
Write a C program that accepts two item’s weight (floating points' values ) and number of purchase (floating points' values) and calculate the average value of the items.
I change a little so that it can accept any amount of item's weight and key in those variable after the code run.
this is the code with two function but I is not working:
Code:
#include<stdio.h>
float average(int x, int *Item, float *Weight){
float sum;
int count;
for(int a=0;a<x;a++){
sum+=(Item[a])*(Weight[a]);
count+=Item[a];
}
printf("%f\n",sum);
printf("%d\n",count);
return sum/count;
}
int main(){
int num;
printf("number of type: ");
scanf("%d",&num);
int num_item[num];
float weight[num];
for(int i=1;i<=num;i++){
printf("No. of item%d: ",i);
scanf("%d",&num_item[i-1]);
printf("Weight of item%d: ",i);
scanf("%f",&weight[i-1]);
}
float av=average(num,num_item,weight);
printf("Average Value = %f",av);
return 0;
}
After I combine two function into one function, I just work perfect.
Code:
#include<stdio.h>
int main(){
int num;
float sum;
int count;
printf("number of type: ");
scanf("%d",&num);
int num_item[num];
float weight[num];
for(int i=1;i<=num;i++){
printf("No. of item%d: ",i);
scanf("%d",&num_item[i-1]);
printf("Weight of item%d: ",i);
scanf("%f",&weight[i-1]);
}
for(int a=0;a<num;a++){
sum+=(num_item[a])*(weight[a]);
count+=num_item[a];
}
printf("%f\n",sum);
printf("%d\n",count);
float average=sum/count;
printf("%f\n",average);
return 0;
}
I don't know what is the problem for the first code, can someone help me?