C 将排序循环结果传输到另一个数组
这里有一个从最小到最大对数组排序的循环,我需要将这个循环的结果放入另一个数组中,这样我就可以过滤和删除只出现一次的数字,并找到剩下的最后一个成员 以下是我目前掌握的代码:C 将排序循环结果传输到另一个数组,c,arrays,sorting,loops,C,Arrays,Sorting,Loops,这里有一个从最小到最大对数组排序的循环,我需要将这个循环的结果放入另一个数组中,这样我就可以过滤和删除只出现一次的数字,并找到剩下的最后一个成员 以下是我目前掌握的代码: #include<stdio.h> #include<conio.h> #define buffas 1024 void main() { int arr[buffas],i,j,element,no,temp; printf("\nEnter the no of Elements:
#include<stdio.h>
#include<conio.h>
#define buffas 1024
void main() {
int arr[buffas],i,j,element,no,temp;
printf("\nEnter the no of Elements: ");
scanf("%d", &no);
for(i=0; i<no; i++) {
printf("\n Enter Element %d: ", i+1);
scanf("%d",&arr[i]);
}
for(i=0; i<no; i++) {
for(j=i; j<no; j++) {
if(arr[i] > arr[j]) {
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
printf("\nSorted array:");
for(i=0; i<no; i++) {
printf("\t%d",arr[i]);
}
getch();
}
填充另一个数组,然后对其排序,以删除单个条目,并保留至少重复一次的条目。第一天是星期天 2 2 1 6 9 9 第二次排序后,结果应为 2 2 9 9
注意,代码使用C99特性,在
for
循环控制语句中声明变量;如果您在Windows上且不支持C99,则需要在循环外部声明i
和k
。如果您使用的是GCC,您需要添加-std=c99
或类似选项。您可以编辑您的帖子和缩进,并对您的代码进行注释吗?似乎是作业问题,您是否尝试实施第二次排序?很抱歉缩进,我似乎无法正确理解。我没有尝试第二次排序,我该怎么做?通过循环排序数组的每个元素,可以检查下一个或上一个元素是否与当前元素相同(考虑边界),如果是,则将其添加到第二个数组中。逐步遍历排序数组,查找具有相同值的行的范围,并将这些行复制到目标数组。您只需计算每行值的重复次数。谢谢,这非常有用!
printf("\t%d",arr[i]);
#include <stdio.h>
#define buffas 16
int main(void)
{
/* Instead of original input and sorting code */
int arr[] = { 1, 2, 2, 6, 9, 9, 10, 10, 10, 11, 12, 13, 14 };
int no = sizeof(arr) / sizeof(arr[0]);
/* Code to copy only duplicated elements in arr */
int copy[buffas];
int n = 0;
for (int i = 0; i < no; i++)
{
int j;
for (j = i + 1; j < no; j++)
{
if (arr[i] != arr[j])
break;
}
if (j - i > 1)
{
for (int k = i; k < j; k++)
copy[n++] = arr[k];
i = j - 1;
}
}
/* Print results for verification */
for (int i = 0; i < n; i++)
printf("c[%d] = %d\n", i, copy[i]);
return 0;
}
c[0] = 2
c[1] = 2
c[2] = 9
c[3] = 9
c[4] = 10
c[5] = 10
c[6] = 10