根据我的任务,我应该编写多文件程序,它必须接受int-作为数组长度和数组元素-作为Double.但当我try 输入3个或更多元素时,出现了一些问题.
我知道这与指针和Malloc函数有关,但我真的不知道问题出在哪里.
这是我的代码. 主要功能:
#include <stdio.h>
#include <stdlib.h>
#include "../data_libs/data_io.h"
#include "data_process.h"
int main() {
double *data = NULL;
int n = 0;
if (input(&data, &n) == 1) {
printf("aboa\n");
output(data, n);
if (normalization(data, n)) {
output(data, n);
free(data);
} else
printf("ERROR=======\n");
} else
printf("ERROR+++++++\n");
return 0;
}
Data_io.c中的输入和输出函数(&A):
#include "data_io.h"
#include <stdio.h>
#include <stdlib.h>
int input(double **data, int *n) {
if (scanf("%d", n) == 1) {
printf("n is int\n");
printf("n = %d\n", *n);
(*data) = malloc((*n) * sizeof(double));
for (int i = 0; i < *n; i++) {
if (scanf("%lf", data[i]) != 1)
return 0;
}
return 1;
} else
return 0;
}
void output(double *data, int n) {
for (int i = 0; i < n; i++) {
if (i == n - 1)
printf("%lf", data[i]);
else
printf("%lf ", data[i]);
}
}
Data_io.c的头文件data_io.h
#ifndef DATA_IO_H
#define DATA_IO_H
int input(double **data, int *n);
void output(double *data, int n);
#endif