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();
}