當前文章復盤C語言的數(shù)組: 數(shù)組定義規(guī)則、數(shù)組空間類型、數(shù)組下標使用、數(shù)組存放的數(shù)據(jù)類型、數(shù)組數(shù)據(jù)替換、插入、輸入、輸出、字符串輸入、輸出、長度計算等等。
一、數(shù)組概念
數(shù)組是一個相同類型元素的集合。
定義數(shù)組語法: <數(shù)據(jù)類型><數(shù)組名稱>[數(shù)組的大小];
int data [100];
解釋:
定義一個int類型數(shù)組名稱是data,可以存放100int類型的數(shù)據(jù),總大小字節(jié): 100*4。
<數(shù)據(jù)類型> 可以填充那些參數(shù)?
基本數(shù)據(jù)類型(char 。。float、int。。。。。)、結(jié)構(gòu)體數(shù)據(jù)類型、指針類型等。
數(shù)組概念說明
(1)[]稱為下標符號,用來操作數(shù)組。比如: b=a[10]; //將a數(shù)組里第10個元素取出來賦值給b變量。
(2).訪問數(shù)組時,下標的范圍是從0開始。比如: int a[10]; 下標范圍: 0~9
(3).數(shù)組在定義時,[]下標里填充的大小必須是常量。(C89標準) 比如: int a[b]; //錯誤 int a[10];
(4).數(shù)組只有在定義的時候,才可以整體賦值。比如: int a[10]={12,34,56,78,90};
(5).數(shù)組在定義的時候,如果賦了值,[]下標里可以不用指定大小。 比如: int a[]={12,34,56};
(6).數(shù)組在定義的時候,至少給一個下標賦了初始值,其他下標默認置為0。比如: int a[10]={0};
#include
int main(void)
{
int buff_i[10]={10,20,30}; //定義整數(shù)類型數(shù)組
float buff_f[10]={10.123,20.123,30.123}; //定義浮點數(shù)類型數(shù)組
char buff_c[10]="123456";//定義字符串類型數(shù)組,結(jié)尾多了一個結(jié)束符"\0"
//說明: 在C語言里面沒有專用字符串類型,字符串本身還是使用char類型定義。Qstring Sting
char buff[10]={'1','2','3','4'}; //定義字符類型數(shù)組
int i;
//打印整型
for(i=0;i<10;i++)
{
printf("%d ",buff_i[i]);
}
printf("\n");
//打印浮點類型
for(i=0;i<10;i++)
{
printf("%f ",buff_f[i]);
}
printf("\n");
//打印字符串
printf("%s\n",buff_c);
//打印字符類型
for(i=0;i<10;i++)
{
printf("%c ",buff[i]);
}
printf("\n");
return 0;
}
二、數(shù)組輸入輸出
#include
//從鍵盤上錄入一串數(shù)據(jù),倒序輸出
int main(void)
{
int i;
int buff[5];
printf("請輸入5個數(shù)據(jù):");
for(i=0;i<5;i++)
{
scanf("%d",&buff[i]); //從鍵盤上錄入數(shù)據(jù)
}
for(i=5-1;i>=0;i--)
{
printf("%d ",buff[i]); //將數(shù)據(jù)打印到控制臺終端
}
printf("\n");
return 0;
}
三、數(shù)組的練習題目
(1). 從鍵盤上錄入一串數(shù)據(jù)(整數(shù)),將數(shù)組里的10替換成66,并統(tǒng)計替換的數(shù)量。
#include
int main(void)
{
//將數(shù)組里的10替換成66,并統(tǒng)計替換的數(shù)量。
int buff[10]={10,34,10,347,23,10,123,56,78,10};
int i,cnt=0;
for(i=0;i<10;i++)
{
if(buff[i]==10)
{
cnt++; //記錄數(shù)量
buff[i]=66;
}
}
printf("替換的數(shù)量%d\n",cnt);
for(i=0;i<10;i++)
{
printf("%d ",buff[i]);
}
printf("\n");
return 0;
}
(2) 計算數(shù)組的大小
int main(void)
{
int buff[]={10,34,10,347,23,10,123,56,78,10,45,10,10};
//34,347,23,123,56,78
int len=10;
printf("buff數(shù)組的總大小=%d\n",sizeof(buff));
printf("buff數(shù)組有%d個成員\n",sizeof(buff)/sizeof(buff[0]));
return 0;
}
(3)從鍵盤上輸入一串數(shù)據(jù)(整數(shù)),將數(shù)組里大于10的數(shù)據(jù)刪除掉。
//比如: char buff[]={12,34,8,4,7,100};
//最終的結(jié)果:{8,4,7,0,0,0}
#include
/*
從鍵盤上輸入一串數(shù)據(jù)(整數(shù)),將數(shù)組里大于10的數(shù)據(jù)刪除掉。
*/
int main(void)
{
int buff[13]={1,34,2,347,23,3,123,56,78,4,45,5,6};
int len=13;
int i,j;
for(i=0;i10) //當if條件成立的時候,i就是當前需要覆蓋數(shù)據(jù)下標
{
//將后面的所有數(shù)據(jù)向前移動一位
for(j=i;j;j++)>;i++)>
四、字符串
(1)字符串大小計算示例
char str1[]={'A','B','c'}; //3
char str2[]="ABC"; //4
printf("str1=%d\n",sizeof(str1)); //3
printf("str2=%d\n",sizeof(str2)); //4
//為什么是4 ?因為字符串結(jié)尾自帶一個'\0'
// '\0'表示是字符串的結(jié)束符號
(2)字符串的長度計算
#include
int main(void)
{
char str[100];
//字符串如何從鍵盤上錄入?
scanf("%s",str); //從鍵盤上錄入一個字符串
//str為什么不加&符號? 因為數(shù)組的名稱就是地址(表示是數(shù)組首地址)。
//字符串如何輸出?
printf("str=%s\n",str);
//如何知道從鍵盤上輸入了多少個字符?
//首先得知道一點: 字符串結(jié)尾符'\0' 字符
int i=0;
while(str[i]!='\0') //判斷字符串的結(jié)束符
{
i++;
}
printf("字符串的長度=%d\n",i);
return 0;
}
(3)字符串的銜接符號
#include
int main(void)
{
char str[100]="3847tr45gt\ // \表示字符串的銜接符號
rhonrbngfbn\
gf";
return 0;
}
審核編輯:湯梓紅
-
C語言
+關(guān)注
關(guān)注
180文章
7604瀏覽量
136680 -
數(shù)組
+關(guān)注
關(guān)注
1文章
417瀏覽量
25939
發(fā)布評論請先 登錄
相關(guān)推薦
評論