Oracle VM VirtualBox I have a problem compiling my codes on my terminal. I\'ve a
ID: 3592942 • Letter: O
Question
Oracle VM VirtualBox
I have a problem compiling my codes on my terminal. I've asked multiple people who do not use a linux virtual machine and they say it runs fine. Every time I try to compile it I seem to get the errors below. How would I fix this?
gcc stocks.c stats.c io.c -o stocks.x
/tmp/cc9esYhA.o: In function `get_average':
stats.c:(.text+0x0): multiple definition of `get_average'
/tmp/cc8bryTg.o:stocks.c:(.text+0x133): first defined here
/tmp/cc9esYhA.o: In function `get_variance':
stats.c:(.text+0x6e): multiple definition of `get_variance'
/tmp/cc8bryTg.o:stocks.c:(.text+0x1a1): first defined here
/tmp/cc9esYhA.o: In function `get_max':
stats.c:(.text+0x123): multiple definition of `get_max'
/tmp/cc8bryTg.o:stocks.c:(.text+0x256): first defined here
/tmp/cc9esYhA.o: In function `get_min':
stats.c:(.text+0x199): multiple definition of `get_min'
/tmp/cc8bryTg.o:stocks.c:(.text+0x2cc): first defined here
/tmp/cc9esYhA.o: In function `sort':
stats.c:(.text+0x20f): multiple definition of `sort'
/tmp/cc8bryTg.o:stocks.c:(.text+0x342): first defined here
/tmp/cc9esYhA.o: In function `get_median':
stats.c:(.text+0x42d): multiple definition of `get_median'
/tmp/cc8bryTg.o:stocks.c:(.text+0x560): first defined here
/tmp/ccsZXUJT.o: In function `print_greeting':
io.c:(.text+0x0): multiple definition of `print_greeting'
/tmp/cc8bryTg.o:stocks.c:(.text+0x0): first defined here
/tmp/ccsZXUJT.o: In function `read_data':
io.c:(.text+0x1f): multiple definition of `read_data'
/tmp/cc8bryTg.o:stocks.c:(.text+0x1f): first defined here
/tmp/ccsZXUJT.o: In function `print_results':
io.c:(.text+0x9a): multiple definition of `print_results'
/tmp/cc8bryTg.o:stocks.c:(.text+0x9a): first defined here
collect2: error: ld returned 1 exit status
Here is my codes
stocks.c
#include
#include "io.c"
#include "stats.c"
int main()
{
int size = 0;
int i;
float median = 0.0f,
variance = 0.0f,
max = 0.0f,
min = 0.0f,
average = 0.0f;
char order;
//print greeting
print_greeting();
//ask user number of stocks being analyzed
printf("How many stocks would you like to enter?: ");
scanf("%d", &size);
float data[size], output[size];
//read data one at a time
read_data(data, size);
//Ask user if they want to sort their prices
printf("Do you want to sort the prices in ascending or descending order? ");
printf("enter lower case a for ascending or lower case d for descending: ");
scanf(" %c", &order);
printf("Given stock prices: ");
for(i = 0; i < size; i++)
printf("%.1f ", data[i]);
printf(" ");
// sorting function
sort(data, output, size, order);
printf("Sorted stock prices: ");
for(i = 0; i < size; i++)
printf("%.1f ", output[i]);
printf(" ");
//get the stats
average = get_average(data, size);
median = get_median(data, size);
variance = get_variance(data, size);
max = get_max(data, size);
min = get_min(data, size);
//print the results
print_results(data, size, average, median, min, max, variance);
return 0;
}
stats.h
float get_average(const float data[], const int size);
float get_variance(const float data[], const int size);
float get_max(const float data[], const int size);
float get_min(const float data[], const int size);
void sort(const float input[], float output[], const int size,const char order);
float get_median(const float input[], const int size);
stats.c
#include
#include "stats.h"
float get_average(const float data[], const int size)
{
int i=0;
float average, sum;
for(i =0; i < size; i++)
{
sum += data[i];
average = sum / size;
}
return average;
}
float get_variance(const float data[], const int size)
{
float mean = get_average(data, size);
float variance = 0;
int i;
for( i = 0; i < size; i++)
{
variance += (data[i] - mean) * (data[i] - mean);
variance /= size;
}
return variance;
}
float get_max(const float data[], const int size)
{
int i =0;
float max = -9999999;
for (i = 0; i < size; i++)
{
if (data[i] >= max)
max = data[i];
}
return max;
}
float get_min(const float data[], const int size)
{
int i = 0;
float min = 999999;
for ( i =0; i < size; i++)
{
if (data[i] >= min)
min = data[i];
}
return min;
}
void sort(const float input[], float output[], const int size,const char order)
{
int i = 0,
j = 0;
float temp;
for(i = 0; i < size; i++)
output[i] = input[i];
for(i = 0; i < size; i++)
{
for(j = 0; j < size - i - 1; j++)
{
if(order == 'a')
{
if (output[j] > output[j+1])
{
temp = output[j];
output[j] = output[j+1];
output[j+1] = temp;
}
}
else if(order == 'd')
{
if(output[j] < output[j+1])
{
temp = output[j];
output[j] = output[j+1];
output[j+1] = temp;
}
}
}
}
}
float get_median(const float input[], const int size)
{
float output[size];
sort(input, output, size, 'a');
if(size % 2 == 0)
return (output[size/2] + output[size/2+1]) / 2;
else
return output[size/2];
}
io.h
void print_greeting();
void read_data(float array[], int size);
void print_results(const float array[], int size, float mean, float median, float min, float max, float variance);
io.c
#include
#include "io.h"
void print_greeting()
{
printf("This program asks the user how many stocks they have, and does calculations with the information. ");
printf("It also asks sorts the stock prices either ascending, descending, or normal ");
}
void read_data(float array[], int size)
{
int i = 0;
// read data
printf("Please enter data you wish to use: ");
for (i = 0; i < size; i++)
{
printf("Please enter stock price #%d: ", i+1);
scanf("%f", &array[i]);
}
}
void print_results(const float array[], int size, float mean, float median, float min, float max, float variance)
{
printf("Mean equals = $%.2f ", mean);
printf("Median equals = $%.2f ", median);
printf("Min equals = $%.2f ", min);
printf("Max equals = $%.2f ", max);
printf("Variance equals = $%.2f ", variance);
}
Thank you for your time
Explanation / Answer
#include
#include "io.c"
#include "stats.c"
int main()
{
int size = 0;
int i;
float median = 0.0f,
variance = 0.0f,
max = 0.0f,
min = 0.0f,
average = 0.0f;
char order;
//print greeting
print_greeting();
//ask user number of stocks being analyzed
printf("How many stocks would you like to enter?: ");
scanf("%d", &size);
float data[size], output[size];
//read data one at a time
read_data(data, size);
//Ask user if they want to sort their prices
printf("Do you want to sort the prices in ascending or descending order? ");
printf("enter lower case a for ascending or lower case d for descending: ");
scanf(" %c", &order);
printf("Given stock prices: ");
for(i = 0; i < size; i++)
printf("%.1f ", data[i]);
printf(" ");
// sorting function
sort(data, output, size, order);
printf("Sorted stock prices: ");
for(i = 0; i < size; i++)
printf("%.1f ", output[i]);
printf(" ");
//get the stats
average = get_average(data, size);
median = get_median(data, size);
variance = get_variance(data, size);
max = get_max(data, size);
min = get_min(data, size);
//print the results
print_results(data, size, average, median, min, max, variance);
return 0;
}
stats.h
float get_average(const float data[], const int size);
float get_variance(const float data[], const int size);
float get_max(const float data[], const int size);
float get_min(const float data[], const int size);
void sort(const float input[], float output[], const int size,const char order);
float get_median(const float input[], const int size);
stats.c
#include
#include "stats.h"
float get_average(const float data[], const int size)
{
int i=0;
float average, sum;
for(i =0; i < size; i++)
{
sum += data[i];
average = sum / size;
}
return average;
}
float get_variance(const float data[], const int size)
{
float mean = get_average(data, size);
float variance = 0;
int i;
for( i = 0; i < size; i++)
{
variance += (data[i] - mean) * (data[i] - mean);
variance /= size;
}
return variance;
}
float get_max(const float data[], const int size)
{
int i =0;
float max = -9999999;
for (i = 0; i < size; i++)
{
if (data[i] >= max)
max = data[i];
}
return max;
}
float get_min(const float data[], const int size)
{
int i = 0;
float min = 999999;
for ( i =0; i < size; i++)
{
if (data[i] >= min)
min = data[i];
}
return min;
}
void sort(const float input[], float output[], const int size,const char order)
{
int i = 0,
j = 0;
float temp;
for(i = 0; i < size; i++)
output[i] = input[i];
for(i = 0; i < size; i++)
{
for(j = 0; j < size - i - 1; j++)
{
if(order == 'a')
{
if (output[j] > output[j+1])
{
temp = output[j];
output[j] = output[j+1];
output[j+1] = temp;
}
}
else if(order == 'd')
{
if(output[j] < output[j+1])
{
temp = output[j];
output[j] = output[j+1];
output[j+1] = temp;
}
}
}
}
}
float get_median(const float input[], const int size)
{
float output[size];
sort(input, output, size, 'a');
if(size % 2 == 0)
return (output[size/2] + output[size/2+1]) / 2;
else
return output[size/2];
}
io.h
void print_greeting();
void read_data(float array[], int size);
void print_results(const float array[], int size, float mean, float median, float min, float max, float variance);
io.c
#include
#include "io.h"
void print_greeting()
{
printf("This program asks the user how many stocks they have, and does calculations with the information. ");
printf("It also asks sorts the stock prices either ascending, descending, or normal ");
}
void read_data(float array[], int size)
{
int i = 0;
// read data
printf("Please enter data you wish to use: ");
for (i = 0; i < size; i++)
{
printf("Please enter stock price #%d: ", i+1);
scanf("%f", &array[i]);
}
}
void print_results(const float array[], int size, float mean, float median, float min, float max, float variance)
{
printf("Mean equals = $%.2f ", mean);
printf("Median equals = $%.2f ", median);
printf("Min equals = $%.2f ", min);
printf("Max equals = $%.2f ", max);
printf("Variance equals = $%.2f ", variance);
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.