首先,你有一个数组/列表A,然后你想将它转换为给定的预期数组/列表B. 您可以应用在阵列的唯一行动是InsertAt和DeleteAt他们在哪里能够插入,并从列表中的某些索引中删除的元素.
注意:阵列B始终排序,而阵列A可能不排序.
例如,你有一个数组A. [1, 4, 3, 6, 7]
而你希望它成为 [2, 3, 4, 5, 6, 6, 7, 8]
一种方法是让A接受以下行动:
deleteAt(0); // which will delete element 1, arrayA now [4, 3, 6, 7]
deleteAt(0); // delete element 4 which now at index 0
// array A now [3, 6, 7]
insertAt(0, 2); // Insert value to at index 0 of array A
// array A now [2, 3, 6, 7]
insertAt(2, 4); // array now [2, …Run Code Online (Sandbox Code Playgroud) 我正在学习C,我遇到了一个奇怪的问题.
我正在尝试编写一个程序,它能够输入一个句子并将它们作为单独的单词输出.
INPUT: a bb ccc dddd eeeee
DESIRED a
OUTPUT: bb
ccc
dddd
eeeee
Run Code Online (Sandbox Code Playgroud)
当我编写以下代码时,这很有效.但是,当我将部分代码更改为我认为应该以相同方式工作时,它的工作异常.
原始代码:
#include <stdio.h>
#define NONBLOCK 'c'
/* separate words */
main()
{
int c ,lastc;
int toggle;
lastc = NONBLOCK;
while ((c = getchar()) != EOF){
if (c == ' '){
if (lastc != ' ')
putchar('\n');
}
else{
putchar(c);
}
lastc = c;
}
}
Run Code Online (Sandbox Code Playgroud)
当我替换以下时它错误地工作:
if (c == ' '){
if (lastc != ' ')
putchar('\n');
}
Run Code Online (Sandbox Code Playgroud)
同
if (c == ' …Run Code Online (Sandbox Code Playgroud)