日期:2023-11-30
一:个人对该问题从数据处理和存储方面的一些考虑
(1)因为涉及到多组大量数据的输入问题,所以需要导入数组,对于输入的所有数据进行储存,但是要考虑到,如果是对于输入大量整型数据,且分多批次的输入,重复的大量定义数组来实现存储并不现实,当数组数过于庞大时,不断地声明定义,既降低了程序的运行效率,因为在涉及数据处理的过程中,倘若要保存原数据,那么每一个定义的数组分支下都需要定义更多的数组进行数据处理后的数据存储,而且大大提高程序的书写复杂程度。
(2)所以,考虑到单一地重复定义数组的复杂性和难处理性,这里引用二维数组,从线性代数处理实际问题的角度出发,在空间定位上实现对于多组不同的大量数据在数组中的储存,并且由于二维数组地址特性,可以通过设定内外循环实现对于不同批次的数组数据的分批次处理,这样既简化了代码的编写难度,又可以通过调用特定位置存储的数据,实现数据的复杂处理,并且在最后输出的时候,可以做到一并输出所有数据的处理结果,而不是在选择复杂定义数组下,再次调用多个对应数组去接收数据来海鲜所有数据处理结果的同时输出,这点上,二维数据的特性,决定了其可以用来解决多批次重复数据处理过程的复杂重复问题的功能性。
二:下面给出一些依据二维数组特性所写出的代码。
#include<stdio.h>
void sort(int *a,int n);
int main()
{
int repeat,n,i,j,m[10],s[10][10];
scanf("%d",&repeat);
for(i=0;i<repeat;i++)
{
scanf("%d",&n);
m[i]=n;
for(j=0;j<n;j++)
{
scanf("%d",&s[i][j]);
}
sort(s[i],n);
}
for(i=0;i<repeat;i++)
{
printf("After sorted:");
for(j=0;j<m[i];j++)
{
printf(" %d",s[i][j]);
}
printf("\n");
}
return 0;
}
void sort(int *a,int n)
{
int i,j,c;
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(a[i]>a[j])
{
c=a[i];
a[i]=a[j];
a[j]=c;
}
}
}
return ;
}