c语言 如何将输出存入数组 求大神帮助

请帮忙把下面代码所得出的答案存入一个数组中。。。感谢啊

#include "stdio.h"
#include "time.h"
#include "stdlib.h"
#include "math.h"

#define NUM_OF_INT 10

#define MAX(x,y) x>y?1:0

void sort(int * data){
int i, j;
int temp_val;
for (i = 0; i < NUM_OF_INT; i++){
for (j = 0; j < NUM_OF_INT - i - 1; j++){
if (MAX(data[j], data[j + 1])){
temp_val = data[j];
data[j] = data[j + 1];
data[j + 1] = temp_val;
}
}
}
}
//平均值
float average(int * data){
int temp_val = 0;
for (int i = 0; i < NUM_OF_INT; i++){
temp_val += data[i];
}
return (float)temp_val / NUM_OF_INT;
}
//方差
float variance(int * data, float average){
double temp_val = 0;
for (int i = 0; i < NUM_OF_INT; i++){
temp_val += pow((data[i] - average), 2);
}
return (float)temp_val / NUM_OF_INT;
}
void main(){
int i;
int temp_val;
int data[NUM_OF_INT];
time_t t;
time(&t);
srand(t);

for (i = 0; i < NUM_OF_INT; i++){
printf("Input your ten numbers:\n");
scanf("%d", &data[i]);
printf("%d ", data[i]);
}
printf("\n");
sort(data);
for (i = 0; i < NUM_OF_INT; i++){
printf("%d ", data[i]);
}
printf("\n");
printf("min_val = %d,max_val = %d", data[0], data[NUM_OF_INT - 1]);
printf("\n");

if (NUM_OF_INT % 2){
printf("Median = %d\n", data[NUM_OF_INT / 2]);
}
else{
printf("Median = %d\n", (data[NUM_OF_INT / 2] + data[NUM_OF_INT / 2 - 1]) / 2);
}
float average_val = average(data);
printf("Mean = %f\n", average_val);
float variance_val = variance(data, average_val);
printf("variance = %f\n", variance_val);
float deviation_val = sqrt(variance_val);
printf("deviation = %f\n", deviation_val);
system("pause");

}

第1个回答  2014-07-01
你的输出有整形,浮点型等等,是不可能存入一个数组的。除非你自己定义一个struct来存。追问

那我将它改成都是浮点的话要怎么存?

追答

你的输出个数是确定的吗?

追问

是啊 就一直是四个
但我没法全部用成整形,其中一个一定是浮点