【发布时间】:2018-10-04 21:34:49
【问题描述】:
在代码中应该发生的是用户输入数组的数字,然后使用函数以正确的顺序使用指针对数组进行排序。问题是,输出没有按预期输出,我不知道我做错了什么。任何帮助,将不胜感激。谢谢!
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MINIMUM_QUANTITY 2
#define MAXIMUM_QUANTITY 10
#define QUIT 0
int quantityValue();
float obtainInfo(int data);
float dataSort(float array1[], float newArray[]);
int main()
{
int quantity;
float *fdata,
while(quantityValue(quantity)) != QUIT)
{
if (fdata = (float*)malloc(sizeof(*fdata) * quantity) == NULL)
{
exit(0);
}
obtainInfo(fdata, quantity);
dataSort(fdata, quantity);
free(fdata);
}
return 0;
}
int quantityValue()
{
int choice;
do
{
printf("\nHow many numbers are there?");
scanf("%d", &choice);
}
while(choice > MINIMUM_QUANTITY || choice < MAXIMUM_QUANTITY);
return choice;
}
float obtainInfo(int data)
{
float array[data],
value;
for(counter = 0; counter <= array[data]; counter++)
{
printf("\nvalue %d", counter + 1);
scanf("%f", value);
array[data] = value;
array++;
return array[data];
}
float dataSort(float array1[], float newArray[])
{
int *startOfData
*data
*startOfSort
*sort
*biggestNumber
temp;
if(p_sort = (float*)malloc(sizeof(*p_sort) == NULL)
{
exit(0);
}
for(startOfData = array1[]; startOfData < biggestNumber; startOfData++
{
for(startOfSort = newArray; startOfSort < startOfData; startOfSort++)
{
temp = *data;
*data = *sort;
*sort = temp;
free(p_sort)
return;
}
【问题讨论】:
-
哦,等等,我刚刚注意到我的一个函数中缺少一些代码。我很抱歉。
-
编译器给出了许多警告和错误。
-
您使用函数的方式甚至与您在
main()中的使用方式不匹配。例如,您如何期望quanityValue()将其结果保存在本地quantity中?你没有像quantity = quanityValue();这样的东西dataSort()的签名也是不匹配的。这甚至可以编译吗? -
@infixed:不,它不能编译。第一个标记的错误是第 18 行的括号不匹配。Paul,我们需要查看您的真实代码。
-
考虑逐步开发它。保存您当前的工作,但开始一个新文件,其中只有
main()和quanityValue(),然后使用调试器来使其工作。一个你拥有它,加载你的数组,然后调试它,在它工作之后,进行排序。您不必一次完成所有操作。