作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以这里我填充数组并进行排序。我需要将从键盘输入的数字插入到数组中,而不需要敲除其顺序。请告诉我我该怎么做。
#include <stdio.h>
int main(void)
{
//Creating array
int a[5];
int i, j, temp;
printf("Enter number to create array\n");
for (i = 0; i < 5; i++)
scanf("%d", &a[i]);
//Sorting the array ascending descending
for (i = 1; i < 5; i++) {
temp = a[i];
for (j = i - 1; j >= 0; j--)
if (temp > a[j]) {
a[j + 1] = a[j];
a[j] = temp;
}
}
//Output of sorted array
for (i = 0; i < 5; i++)
printf("%d\n", a[i]);
return 0;
}
最佳答案
数组的大小一旦定义就固定了。如果要向其中添加元素,则需要定义另一个具有增加的大小的数组。如果您想保持排序顺序,则必须将现有元素与新元素进行比较。
#include <stdio.h>
int main(void)
{
//Creating array
int a[5];
int i, j, temp;
int extra;
printf("Enter number to create array\n");
for (i = 0; i < 5; i++)
scanf("%d", &a[i]);
//Sorting the array ascending descending
for (i = 1; i < 5; i++) {
temp = a[i];
for (j = i - 1; j >= 0; j--)
if (temp > a[j]) {
a[j + 1] = a[j];
a[j] = temp;
}
}
//Output of sorted array
for (i = 0; i < 5; i++)
printf("%d\n", a[i]);
puts("Enter another number to add");
scanf("%d", &extra);
/* Define a larger array to hold the extra element. Naturally, you can
extend this to use a variable value from user input. */
int b[6];
j = 0;
for (i = 0; i < 5; i++) {
if (extra > a[i]) {
/* insert the extra number in the proper order */
b[j++] = extra;
b[j++] = a[i];
/* You have to have a way to stop further comparisons once an
insertion point is reached. In this case, it's a simple
expedient of setting the value to zero. Many times a boolean
flag is used for this purpose. Using zero for this assumes
that you're only sorting positive integers. */
extra = 0;
}
else {
/* otherwise, just copy over the sorted elements */
b[j++] = a[i];
}
}
for (i = 0; i < 6; i++)
printf("%d\n", b[i]);
return 0;
}
如果您使用的是堆分配的整数数组,则可以使用 realloc() 来调整其大小,然后找到插入点,像排序一样使用临时变量,并将其余数组元素向下洗牌 1。
关于c - 将数字添加到已排序的降序数组而不扰乱顺序 (C),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48373016/
我想创建一个可以编译的 Java 项目的 jar 文件。我在互联网上查看过,但所有关于如何执行此操作的示例似乎都需要一个 java 文件并对其进行处理。我想将 java 项目的根目录打包到 jar 中
当我添加一个左连接来获取外部表的计数时,它将我的其他左连接表的总和值乘以计数,我也不能在这里使用不同的总和,因为两个值可以相同: SELECT c.id as company_id, SUM(ct.a
我在 AppEngine 上托管了一个简单的 ReSTLet 服务。这对字符串执行基本的 CRUD 操作,并且当我用 curl 测试它时(对于所有动词),它可以很好地处理各种 UTF-8 字符。 这由
我是一名优秀的程序员,十分优秀!