【发布时间】:2017-11-19 20:47:25
【问题描述】:
使用递归方法(即没有循环)重写冒泡排序,以及在递归排序运行前后打印出数组的打印数组函数。数组是:
int ary[] = { 19, 62, 45, 9, 4, 99, 82, 34, 59, 102 }
编写一个读取命令行参数并处理两个开关的函数:“-min”和“-max”。如果选择“-min”,则数组从 min 到 max 排序。如果选择“-max”,则数组从 max 到 min 排序。
使用名为 rsort.exe 的程序的发布版本从 Windows cmd 提示符生成输出。如果命令行中没有提供参数,打印出一条帮助信息,类似如下:
用法:c:> rsort.exe WHERE -min [min to max] 或 -max [max to min
评论中的代码。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(void)
{
int ary[] = { 19, 62, 45, 9, 4, 99, 82, 34, 59, 102 };
int find_max(int *array,int max,int i);
if (i>=0)
{
if (array[i]>array[max])
{
find_min(array,i,i-1);
}
find_min(array,max,i-1);
}
return max;
}
【问题讨论】:
-
我卡住了,我的输出让我感到困惑
-
这个程序需要是c语言而不是c++ 谢谢
-
您应该在问题中包含可以格式化的代码,而不是在不能格式化的 cmets 中。这次我替你做了;请以后自己做。现在清理 cmets。 C 标签说你想要 C 而不是 C++。
-
你不应该在其他函数中声明函数(更不用说定义它们——在这里可能不是问题,但 GCC 默认允许这样做,有时人们会被抓住)。您没有显示
find_max()的定义。您没有显示i、array或max的声明。实际上,您似乎尝试将find_max()的定义嵌套在main()中,但是您在声明的末尾使用了;(因此它是一个声明)而不是{这将使它成为一个嵌套定义——坏、坏、坏! -
您需要查看
max在函数中是如何分配新值的(目前还没有)。