到目前为止,这是我对圆形数组的实现.它应该存储输入的最后5个命令,通过在第5个位置输入第6个命令并丢弃第1个命令.到目前为止我设法做的是,能够存储5个命令并打印出来.在第6个命令中,我注意到它进入了第二个位置(k=1)historyArray,但是在调试时,k它等于0至少将最后一个命令推到顶部.如果你能让我再次走上正轨,我将不胜感激.这是代码的一部分.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main (int argc, char *argv[])
{
int i=0;
int j=0;
int k=0;
int tempIndex = 0;
int elementCounter = 0;
char inputString[100];
char *result=NULL;
char delims[] = " ";
char historyArray[5][20] = {0};
char tokenArray[20][20] ;
char hCommand[1][20];
do
{
j = 0;
printf("hshell>");
gets(inputString);
//skip writing "history" in historyArray
if (strcmp(inputString,"history")!= 0)
{
strcpy (historyArray[k], inputString);
}
k = (k+1) % 5;
if …Run Code Online (Sandbox Code Playgroud) 我一直在尝试在正在进行的程序中实现各种类型的排序.到目前为止,我已经设法对整数进行排序.为了使这个(合并)代码排序为String数组而不是int数组,必须进行哪些更改?时间复杂度会有所不同吗?如果是这样,无论好坏?
编辑1:尝试使用compareTo.有些事似乎不对.返回错误,例如无法从字符串转换为int,反之亦然.固定
编辑2:我在行中得到NullPointerException if(array [low] .compareTo(array [high])> = 0).建议随时欢迎.
这是错误:
null null null null null
Exception in thread "main" java.lang.NullPointerException
at Merge.mergeSort_srt(Merge.java:28)
at Merge.Sort(Merge.java:15)
at Sort.main(Sort.java:73)
import java.io.File;
public class Merge
{
public void Sort (LinkedList listIn, int size) throws Exception
{
String[] mergeArray = new String[size] ;
String textContent = null ;
File outputFile ;
for(int i = 0; i < mergeArray.length; i++)
System.out.print( mergeArray[i]+" ");
System.out.println();
mergeSort_srt(mergeArray,0, mergeArray.length-1);
System.out.print("Values after the sort:\n");
for(int i = 0; i <mergeArray.length; …Run Code Online (Sandbox Code Playgroud)