早教吧 育儿知识 作业答案 考试题库 百科 知识分享

c++分别在a数组和b数组中放入若干个数,把两个数组中的数按由小到大的顺序归并到c数组中。分别在a数组和b数组中放入若干个数,把两个数组中的数按由小到大的顺序归并到c数组中。要求

题目详情
c++分别在a数组和b数组中放入若干个数,把两个数组中的数按由小到大的顺序归并到c数组中。
分别在a数组和b数组中放入若干个数,把两个数组中的数按由小到大的顺序归并到c数组中。
要求:(1)数组a和b的大小用动态分配内存方式确定
(2)至少调用一次子函数
▼优质解答
答案和解析
// Test0703.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "stdio.h"
#include
void ConstructArr(int arr[],int iSize);
void MaoPaoSort(int arr[],int iSize);
int _tmain(int argc, _TCHAR* argv[])
{
int i = 0;
int iArrSize=0,iaSize=0,ibSize=0;
printf(_T("构造A数组,请输入A数组大小:"));
scanf(_T("%d"),&iArrSize);
if (iArrSize < 0)
{
printf(_T("Err:输入大小无效\n"));
return -1;
}
iaSize = iArrSize;
int *paA = (int *)malloc(iaSize * sizeof(int));
if (NULL != paA)
{
ConstructArr(paA,iaSize);
}
printf(_T("构造B数组,请输入B数组大小:"));
scanf(_T("%d"),&iArrSize);
if (iArrSize < 0)
{
printf(_T("Err:输入大小无效\n"));
return -1;
}
ibSize = iArrSize;
int *paB = (int *)malloc(iaSize * sizeof(int));
if (NULL != paB)
{
ConstructArr(paB,ibSize);
}
int icSize = iaSize + ibSize;
int *paC = (int *)malloc(icSize * sizeof(int));
if (NULL != paC)
{
for (i=0;i {
if (i {
paC[i] = paA[i];
}
else
{
paC[i] = paB[i-iaSize];
}

}
}
printf(_T("C数组的元素为: "));
MaoPaoSort(paC,icSize);
printf(_T("sort: "));
for (i=0;i< icSize;i++)
{
printf(_T("%d "),paC[i]);
}
printf(_T("\n"));
free(paA);
free(paB);
free(paC);

return 0;
}
void ConstructArr(int arr[],int iSize)
{
int i = 0,iInput = 0;
printf(_T("请输入%d个整数: "),iSize);
printf(_T("\n"));
for (i=0;i {
printf(_T("输入第%d个整数:"),i);
scanf(_T("%d"),&iInput);
arr[i] = iInput;
printf(_T("\n"));
}
printf(_T("数组的元素为: "));
for(i=0;i {
printf(_T("%d "),arr[i]);
}
printf(_T("\n"));
}
void MaoPaoSort(int arr[],int iSize)
{
int temp = 0;
for (int i = iSize - 1;i >0 ;i--)
{
for (int j = 0;j < i;j++)
{
if (arr[j] > arr[j+1])
{
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
看了c++分别在a数组和b数组中放...的网友还看了以下: