This is for c programming: I am having the following errors in my code. I have i
ID: 3598021 • Letter: T
Question
This is for c programming: I am having the following errors in my code. I have included the pseudo code provided by my professor as well as the main, calculations , and io. Please assist with my errors. Leave comments where you made any changes.
Thank you.
Errors:
stocks.c: 70:4: error expected expressin before 'float'
float * parseString(char str [])
stocks.c: 118:30: error: 'array' undeclared here(not in a function)
float mean = get_average(array, size)
stocks.c: 118:37: error: 'size' undeclared here(not in a functin)
float mean = get_average(array, size);
stocks.c: 125:5: error: conflicting types for 'print_results'
In file included from stocks.c: 17: 0:
io.h:18:6: note: previous declaration of 'print_results' was here
void print_results(const float array[], int size, float median, float min,
float max, float mean, float variance);
stocks.c:127:5: error: expected identifier or '(' before 'return'
return 0;
stocks.c:129:1: error: expected identfier or '(' before '}' token
This is my main:
* stocks.c
* program 4 is a program that will
*inputs data on the command line to process stock values
Here is my main:
*
* gcc -o stocks.x stocks.c
* ./stocks.x
*
*/
#include <limits.h>
#include <stdio.h>
#include "io.h"
#include "stats.h"
#include <stdlib.h>//strtod
#include <string.h>
int main(int argc, char* argv[])
{
int size, i;
char order;
//user has enter nothing in command prompt
if(argc < 1)
{
//from Proj 3 greet and read data
// greet and get the stock values
print_greeting();
printf("How many stocks prices would you like to analyze? ");
scanf("%d", &size);
// read the data
float array[size];
read_array(array, size);
}
//user has enter only one argument
else if(argc=1)
{
//user enters one value
//check whether the argument is numeric
if(isdigit(argv[0]))
{
proj3(); //calls the function proj3
}
//user enters a value seperated by ','
//assume the delimeter is a ','
else if(argv[1]=",")
{
//count the number of entries
//allocate the values into array
//need to use a single pointer to allocate the values into array, but how?
for (int i = 0; i < argc; i+2)
//parse the input string and store the value into arrays
float * parseString(char str[])
{
float result[10];//declaring result array, using max size for size
char *token = NULL;//intializing token to split
int count=0;
char *unconverted;
for(token = strtok(str,","); token != NULL; token = strtok(NULL, ","))
{
//strtok splits string according to the delimeter which is ,
result[count]=strtod(token, &unconverted);//adding to the result array, strtod, converts the token char* to float
count++;
}
return result;//returning result
}
{
size[i]=argv[i];
}
}
}
//user enters the number of entries
else
// get the number of entries
{
//allocate the values into array
for (int i = 0; i < argc; ++i)
{
}
}
}
// same as from project 3
//get the stats
float mean = get_average(array, size);
float variance = get_variance(array, size);
float min = get_min(array, size);
float max = get_max(array, size);
float median = get_median(array, size);
// show the results
print_results(array, size, median, min, max, mean, variance);
return 0;
}
These are my stat.c:
* This stats.c file includes the functions for
* average, variance, max, min, and median.
*
*/
#include <limits.h>
#include "stats.h"
// sorts the values of an array according to order
void sort (float output[], const int size, char order)
{
int i, j;
float temp;
if (order == 'a' || order == 'A')
{
for ( i = 0; i < size - 1; ++i )
for ( j = i + 1; j < size; ++j )
if ( output[i] > output[j] )
{
temp = output[i];
output[i] = output[j];
output[j] = temp;
}
}
else if (order == 'd' || order == 'D')
{
for ( i = 0; i < size - 1; ++i )
for ( j = i + 1; j < size; ++j )
if ( output[i] < output[j] )
{
temp = output[i];
output[i] = output[j];
output[j] = temp;
}
}
else
return ;
}
// calculates the mean of the elements of an array
float get_average(const float array[], int size)
{
int i;
float sum = 0.0;
for (i = 0; i < size; i++)
sum += array[i];
sum /= size;
return sum;
}
// calculates the variance of the emelemts of an array
// this function calls the get_average to get the mean
float get_variance(const float array[], int size)
{
int i;
float sum = 0.0;
float mean = get_average(array, size);
for (i = 0; i < size; i++)
sum += array[i] * array[i];
sum = sum/size - mean*mean;
return sum;
}
// gets the median of an array after it sorts it
float get_median(const float array[], int size)
{
int i;
float temp_array[size]; // temp array tp be manipulated
float median;
// copy oroginal array to the temp array
for (i = 0; i < size; i++)
temp_array[i] = array[i];
sort(temp_array, size, 'a');
if (size % 2 == 0)
median = (temp_array[size/2] + temp_array[size/2-1])/2.0;
else
median = temp_array[size/2];
return median;
}
// finds the maximum value of the elements of an array
int get_max(const float array[], int size)
{
int i;
float max = array[0];
for (i = 0; i < size; i++)
if (array[i] >= max)
max = array[i];
return max;
}
// finds the minimum value of the elements of an array
int get_min(const float array[], int size)
{
int i;
float min = array[0];
for (i = 0; i < size; i++)
if (array[i] <= min)
min = array[i];
return min;
}
This is my io.c:
* this is the io.c file
*
*
*/
#include <stdio.h>
#include "io.h"
// prompt the user for input and read the values into an array
void read_array(float array[], int size)
{
int i = 0;
for (i = 0; i < size; i++)
{
printf ("Please enter #%d stocks seperated by a comma. ", i+1);
scanf("%f", &array[i]);
}
}
// say hi to the user
void print_greeting(void)
{
printf("Welcome! Today we are reading and analyzing stocks. ");
}
// display array values
void print_array(const float array[], int size)
{
int i = 0;
for (i = 0; i < size; i++)
printf("%.2f ", array[i]);
printf(" ");
}
// print the stat results including input data
void print_results(const float array[], int size, float median, float min, float max, float mean, float variance)
{
printf(" Say something here about the ouput ");
print_array(array, size);
printf("median: $%.2f ", median);
printf("min: $%.2f ", min);
printf("max: $%.2f ", max);
printf("variance: $%.2f ", variance);
printf("mean: $%.2f ", mean);
}
Here is the pseudo code:
Algorithms Data: Stock prices input on several lines, one long string or values separated by spaces Result: mean, variance, min, max, median, sorting of input data begin 2if the user enters nothing on the command line then give a description of the project; ask them to enter the stocks one one line separated by a comma & hit enter when done 5 end 6else if they enter one value then if it's a single number then Implement Project 3 logic in reading the data; end 10 end 11 else 12 13 14 15 end 16 else assume the delimiter is a ','; count the number of entries & allocate arrays; parse the input string and store the values into arrays;Explanation / Answer
#include <limits.h>
#include <stdio.h>
#include "io.h"
#include "stats.h"
#include <stdlib.h>//strtod
#include <string.h>
int main(int argc, char* argv[])
{
int size, i;
char order;
//user has enter nothing in command prompt
if(argc < 1)
{
//from Proj 3 greet and read data
// greet and get the stock values
print_greeting();
printf("How many stocks prices would you like to analyze? ");
scanf("%d", &size);
// read the data
float array[size];
read_array(array, size);
}
//user has enter only one argument
else if(argc=1)
{
//user enters one value
//check whether the argument is numeric
if(isdigit(argv[0]))
{
proj3(); //calls the function proj3
}
//user enters a value seperated by ','
//assume the delimeter is a ','
else if(argv[1]=",")
{
//count the number of entries
//allocate the values into array
//need to use a single pointer to allocate the values into array, but how?
for (int i = 0; i < argc; i+2)
//parse the input string and store the value into arrays
float * parseString(char str[])
{
float result[10];//declaring result array, using max size for size
char *token = NULL;//intializing token to split
int count=0;
char *unconverted;
for(token = strtok(str,","); token != NULL; token = strtok(NULL, ","))
{
//strtok splits string according to the delimeter which is ,
result[count]=strtod(token, &unconverted);//adding to the result array, strtod, converts the token char* to float
count++;
}
return result;//returning result
}
{
size[i]=argv[i];
}
}
}
//user enters the number of entries
else
// get the number of entries
{
//allocate the values into array
for (int i = 0; i < argc; ++i)
{
}
}
}
// same as from project 3
//get the stats
float mean = get_average(array, size);
float variance = get_variance(array, size);
float min = get_min(array, size);
float max = get_max(array, size);
float median = get_median(array, size);
// show the results
print_results(array, size, median, min, max, mean, variance);
return 0;
}
These are my calculations/functions:
* This stats.c file includes the functions for
* average, variance, max, min, and median.
*
*/
#include <limits.h>
#include "stats.h"
// sorts the values of an array according to order
void sort (float output[], const int size, char order)
{
int i, j;
float temp;
if (order == 'a' || order == 'A')
{
for ( i = 0; i < size - 1; ++i )
for ( j = i + 1; j < size; ++j )
if ( output[i] > output[j] )
{
temp = output[i];
output[i] = output[j];
output[j] = temp;
}
}
else if (order == 'd' || order == 'D')
{
for ( i = 0; i < size - 1; ++i )
for ( j = i + 1; j < size; ++j )
if ( output[i] < output[j] )
{
temp = output[i];
output[i] = output[j];
output[j] = temp;
}
}
else
return ;
}
// calculates the mean of the elements of an array
float get_average(const float array[], int size)
{
int i;
float sum = 0.0;
for (i = 0; i < size; i++)
sum += array[i];
sum /= size;
return sum;
}
// calculates the variance of the emelemts of an array
// this function calls the get_average to get the mean
float get_variance(const float array[], int size)
{
int i;
float sum = 0.0;
float mean = get_average(array, size);
for (i = 0; i < size; i++)
sum += array[i] * array[i];
sum = sum/size - mean*mean;
return sum;
}
// gets the median of an array after it sorts it
float get_median(const float array[], int size)
{
int i;
float temp_array[size]; // temp array tp be manipulated
float median;
// copy oroginal array to the temp array
for (i = 0; i < size; i++)
temp_array[i] = array[i];
sort(temp_array, size, 'a');
if (size % 2 == 0)
median = (temp_array[size/2] + temp_array[size/2-1])/2.0;
else
median = temp_array[size/2];
return median;
}
// finds the maximum value of the elements of an array
int get_max(const float array[], int size)
{
int i;
float max = array[0];
for (i = 0; i < size; i++)
if (array[i] >= max)
max = array[i];
return max;
}
// finds the minimum value of the elements of an array
int get_min(const float array[], int size)
{
int i;
float min = array[0];
for (i = 0; i < size; i++)
if (array[i] <= min)
min = array[i];
return min;
}
This is my io.c:
* this is the io.c file
*
*
*/
#include <stdio.h>
#include "io.h"
// prompt the user for input and read the values into an array
void read_array(float array[], int size)
{
int i = 0;
for (i = 0; i < size; i++)
{
printf ("Please enter #%d stocks seperated by a comma. ", i+1);
scanf("%f", &array[i]);
}
}
// say hi to the user
void print_greeting(void)
{
printf("Welcome! Today we are reading and analyzing stocks. ");
}
// display array values
void print_array(const float array[], int size)
{
int i = 0;
for (i = 0; i < size; i++)
printf("%.2f ", array[i]);
printf(" ");
}
// print the stat results including input data
void print_results(const float array[], int size, float median, float min, float max, float mean, float variance)
{
printf(" Say something here about the ouput ");
print_array(array, size);
printf("median: $%.2f ", median);
printf("min: $%.2f ", min);
printf("max: $%.2f ", max);
printf("variance: $%.2f ", variance);
printf("mean: $%.2f ", mean);
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.