随机产生两个5个元素的数组并对其进行排序,然后把这两个数组进行合并,并且合并后的数组也是有序的.(注;不能采用排序的方法)
程序代码如下:
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
int count = 0,y = 0,count1 = 0;
int a[5] = {};
int b[5] = {};
int c[10] = {};
printf("随机产生的a[]为:");
for (int i = 0; i < 5; i++) {
a[i] = arc4random() % 6 + 5;
printf("%d ",a[i]);
}//随机产生一个[5,10]的5个元素
for (int j = 0; j < 5 - 1; j++) {
for (int k = 0; k < 5 - 1 - j; k++) {
if (a[k] > a[k + 1]) {
int temp = a[k];
a[k] = a[k + 1];
a[k + 1] = temp;
}
}
}//对这5个元素进行排序
printf("\n");
printf("排好序的a[]为:");
for (int i = 0; i < 5; i++) {
printf("%d ",a[i]);//输出一个有序的数组
}
printf("\n");
printf("随机产生的b[]为:");
for (int i = 0; i < 5; i++) {
b[i] = arc4random() % 6 + 5;
printf("%d ",b[i]);
}//随机产生一个[5,10]的5个元素
for (int j = 0; j < 5 - 1; j++) {
for (int k = 0; k < 5 - 1 - j; k++) {
if (b[k] > b[k + 1]) {
int temp = b[k];
b[k] = b[k + 1];
b[k + 1] = temp;
}
}
}//对这5个元素进行排序
printf("\n");
printf("排好序的b[]为:");
for (int k = 0; k < 5; k++) {
printf("%d ",b[k]);
}//输出一个有序的数组
printf("\n");
for (int i = 0; i < 5; i++) {
for (int k = 0; k < 5; k++) {
if (a[i] >= b[k]) {
count++;//条件满足时下标加一(a[]中元素对b[]中元素进行比较)
}
}
y = i + count;//对该元素在c[]中下表进行赋值
c[i + count] = a[i];
count = 0;
}//
for (int i = 0; i < 5; i++) {
for (int k = 0; k < 5; k++) {
if (b[i] > a[k]) {
count1++;//条件满足时下标加一(b[]中元素对a[]中元素进行比较)
}
}
y = i + count1;//对该元素在c[]中下表进行赋值
c[i + count1] = b[i];
count1 = 0;
}//
printf("合并并排好序的数组为:");
for (int i = 0; i < 10; i++) {
printf("%d ",c[i]);//输出c[]中元素
}
printf("\n");
return 0;
}