C++动态数组指针赋值的一道题

2024-12-22 14:15:43
推荐回答(5个)
回答1:

你好!!!
使用个宏定义数组的大小,可以很方便的该表数组的大小;使用的是动态开辟空间,使用冒泡法排序,当然也可以用选择法排序或是其他的方法,代码如下,仅供参考!!
#include
#define N 10 //定义数组的大小
int main()
{

int *a=new int [N];//动态开辟空间
cout<<"输入10个学生的成绩:"<
for(int i=0;i cin>>a[i];

for(i=0;i for(int j=0;j if(a[j] {
int temp;
temp=a[j+1];
a[j+1]=a[j];
a[j]=temp;

}

for(i=0;i cout< delete []a;//不是delete a;
return 0;

}

测试:
输入10个学生的成绩:
60 70 90 50 45 60 78 80 98 100
100 98 90 80 78 70 60 60 50 45
Press any key to continue

回答2:

哇唔 回答的人真多啊 我也来凑热闹,,
现在程序讲究效率跟代码量,, 我也贴个吧 只有 20行满足你的题目要求
如果有什么不明白的可以来问我哈。。。。。
#include
using namespace std;
int main()
{
int i=0,*score=new int[10];int k;
cout<<"请输入10个学生的成绩"< while(i!=10&&cin>>k)
{
int j=i;
while(k>=score[j]&&j>=0)
{
score[j]=score[j-1];
j--;
}
score[j+1]=k;
++i;
}
for(int x=0;x!=10;++x)
cout< delete [] score;
return 0;
}

回答3:

你好,以下是简单的示例程序。

#include
using namespace std;

#define NUM 10
int main()
{
// 分配空间
int* score = new int[NUM];

// 初始化成绩
cout<<"请依次输入10个同学的成绩"< for (int i = 0; i {
cin>>score[i];
}

// 从高到底排序
for (int i=0; i {
for (int j = i+1;j {
if (score[j] > score[j-1])
{
int temp = score[j];
score[j] = score[j-1];
score[j-1] = temp;
}
}
}

// 输出成绩
cout<<"从高到底输出成绩:";
for (int i = 0; i {
cout< }
// 释放空间
delete[] score;

getchar();
return 0;
}

回答4:

#include
#define N 10
void main()
{
int a[N];
for(int i=0;i cin>>a[i];
for(i=N-1;i>0;i--)
{
int r=1;
for(int t=0,j=0;j if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
r=0;
}
if(r==1)
break;
}
for(i=0;i cout<
}
上面是一维数组冒泡排序法,申请动态数组空间这个int *p=new int[10];就行,指针p可以当做数组名使用。

回答5:

int *p=new int[10];
for(int *q=p;q!=p+10;q++)
{.......
}

delete []p;