c语言索引数组
⑴ c语言索引数组排序
应该是对索引排序而对数组不排序而达到有序输出原数组的目的。举例代码如下:
//#include"stdafx.h"//Ifthevc++6.0,withthisline.#include"stdio.h"intmain(void){intarray[10]={4,3,2,1,5,0,6,9,7,8},index[10],i,j,k;for(i=0;i<10;index[i]=i++);for(i=0;i<10;i++){for(k=i,j=k+1;j<10;j++)if(array[index[k]]>array[index[j]])k=j;if(k!=i){j=index[k];index[k]=index[i];index[i]=j;}printf("%d",array[index[i]]);}printf(" ");return0;}
⑵ C语言程序设计数组
一个2行4列的字符数组
strcpy就是把字符串的字符一个个赋值给数组
数组索引是从0开始的
you赋给arr,按顺序来,就是arr[0][0]=y,arr[0][1]=o,arr[0][2]=u
arr[0][3]=&
me赋给arr[1],就是arr[1][0]=m,arr[1][1]=e
把arr这个数组打印出来,刚好是you&me
⑶ c语言中什么是数组
数组是计算机编程语言上,对于“Array”的中文称呼。将相同数据类型的元素按一定顺序排列的集合,把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字成为数组名,编号成为下标。组成数组的各个变量成为数组的分量,也称为数组的元素,有时也称为下标变量。数组是在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来的一种形式。这些按序排列的同类数据元素的集合称为数组。
c语言数组
在C语言中, 数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。
关于可变长数组(VLA)的问题:原来的C标准中是不允许可变长数组出现的,但是在C++中,加入了对VLA的支持,也有不少编译器已经支持这个了,而且好像没有太多的人用这个可变长数组。
如果有过用其它语言编程的经历,那么想必会熟悉数组的概念。由于有了数组,可以用相同名字引用一系列变量,并用数字(索引)来识别它们。在许多场合,使用数组可以缩短和简化程序,因为可以利用索引值设计一个循环,高效处理多种情况。数组有上界和下界,数组的元素在上下界内是连续的。因为 Visual Basic对每一个索引值都分配空间,所以不要不切实际声明一个太大的数组。
此处数组是程序中声明的变量数组。它们不同于控件数组,控件数组是在设计时通过设置控件的 Index 属性规定的。变量数组总是连续的;与控件数组不同的是,不能从一个数组的中部加载或卸载数组元素。
一个数组中的所有元素具有相同的数据类型(在C、C++、Java、pascal中都这样。但也并非所有涉及数组的地方都这样,比如在Visual Foxpro中的数组就并没这样的要求)。当然,当数据类型为 Variant 时,各个元素能够包含不同种类的数据(对象、字符串、数值等等)。可以声明任何基本数据类型的数组,包括用户自定义类型和对象变量。
如果要用户输入的是一个数组,一般是用一个循环,但是在输入前也需要固定数组的大小。
compact跟变长数组没有太大的关系,也应该用不到变长数组。因为一般的传数组到函数中就是传数组的地址和元素的个数的,那只是一个提示,不是要求。
原型可以这样写(假设数组的元素是type):
int compact(type *Array,int Count)
数组类型说明 在C语言中使用数组必须先进行类型说明。
数组说明的一般形式为:类型说明符 数组名 [常量表达式],……; 其中,类型说明符是任一种基本数据类型或构造数据类型。数组名是用户定义的数组标识符。方括号中的常量表达式表示数据元素的个数,也称为数组的长度。
⑷ 用c语言怎么做索引数组
用索引做排序就可以了
void select_sort(int *a, int len) {
int Min;
int *index;
index=(int *)new int[len];
for ( int i=0;i<len;i++ ) index[i]=i;
for (int i = 0; i < len - 1; i++) {
for (int j = 1 + i; j < len; j++) {
if (a[index[i]] > a[index[j]]) {
Min=index[i];
index[i]=index[j];
index[j]=Min;
}
}
}
for ( int i=0;i<len;i++ ) cout<<index[i]<<' '; cout<<endl;
for ( int i=0;i<len;i++ ) cout<<a[index[i]]<<' '; cout<<endl;
delete [] index;
}
⑸ c语言编写索引数组
#include<stdio.h>
voidmain(void)
{
inti,j;
inta[5]={5,4,2,3,1};
intb[5]={0,1,2,3,4};//下标序号,数量多就自增赋值
intc,d;
printf("原数组: ");
for(i=0;i<5;i++)
{
printf("%2d",a[i]);
}
for(i=0;i<5;i++)
{
for(j=4-i;j<4;j++)
{
if(a[j]>a[j+1])//从小到大冒泡法交换大小同时交换下角标
{
c=a[j];
a[j]=a[j+1];
a[j+1]=c;
d=b[j];
b[j]=b[j+1];
b[j+1]=d;
}
}
}
printf(" 数组: ");
for(i=0;i<5;i++)
{
printf("%2d",a[i]);
}
printf(" 下标: ");
for(i=0;i<5;i++)
{
printf("%2d",b[i]);
}
getchar();
}