c語言數組元素類型
Ⅰ c語言,定義一個數組,元素的類型是const char*
#include"stdio.h"
#include"stdlib.h"
typedefstructstutttt
{/*定義結構體*/
charname[50];
charnum[50];
doublescore;
}stu;
stustudent,s[1000];
intn;
doublemax;
doubleaverage;
charfileI[20]="stuin.txt";
charfileO[20]="stuout.txt";
intcmp(constvoid*a,constvoid*b)
{
if(((stu*)a)->score<((stu*)b)->score)return1;
elsereturn-1;
}
voidSort()
{
qsort(s,n,sizeof(stu),cmp);
}
voidPnt()
{
inti;
for(i=0;i<n;i++)
{
printf("%s%s%.0lf ",s[i].num,s[i].name,s[i].score);
}
printf(" ");
}
voidRead()
{
n=0;
FILE*fp;
if((fp=fopen(fileI,"r"))==NULL)
{/*以只讀打開文件*/
printf("cannotopenfile");
getchar();
exit(0);
}
while(fscanf(fp,"%s%s%lf ",s[n].num,s[n].name,&s[n].score)!=EOF/*從文件讀*/)
{
n++;
}
fclose(fp);
}
voidSolve()
{
inti;
inth=0,e=0,l=0;
intm90_100=0,m80_89=0,m70_79=0,m60_69=0,m0_59=0;
charsss[81]="";/*"--------------------------------------------------------------------------------";*/
FILE*fp;
if((fp=fopen(fileO,"w"))==NULL)
{/*以只讀打開文件*/
printf("cannotopenfile");
getchar();
exit(0);
}
average=0;
max=0;
for(i=0;i<n;i++)
{
if(s[i].score>max)max=s[i].score;
average+=s[i].score;
}
average/=n;
puts("最高分的人:");
fputs("最高分的人: ",fp);
for(i=0;i<n;i++)
{
if(s[i].score<average)l++;
elseif(s[i].score>average)h++;
elsee++;
if(s[i].score>=90)m90_100++;
elseif(s[i].score>=80)m80_89++;
elseif(s[i].score>=70)m70_79++;
elseif(s[i].score>=60)m60_69++;
elsem0_59++;
if(s[i].score<max)continue;
printf("%s%s%.0lf ",s[i].num,s[i].name,s[i].score);
fprintf(fp,"%s%s%.0lf ",s[i].num,s[i].name,s[i].score);
}
printf(" ");
fprintf(fp," ");
printf("平均成績:%lf ",average);
printf("高於平均%d人 ",h);
printf("等於平均%d人 ",e);
printf("低於平均%d人 ",l);
fprintf(fp,"平均成績:%lf ",average);
fprintf(fp,"高於平均%d人 ",h);
fprintf(fp,"等於平均%d人 ",e);
fprintf(fp,"低於平均%d人 ",l);
puts("");
fputs("",fp);
printf("優秀(90~100)%d人數,百分比;%%%lf ",m90_100,100.0*m90_100/n);
printf("優秀(80~89)%d人數,百分比;%%%lf ",m80_89,100.0*m80_89/n);
printf("優秀(70~79)%d人數,百分比;%%%lf ",m70_79,100.0*m70_79/n);
printf("優秀(60~69)%d人數,百分比;%%%lf ",m60_69,100.0*m60_69/n);
printf("優秀(00~50)%d人數,百分比;%%%lf ",m0_59,100.0*m0_59/n);
fprintf(fp,"優秀(90~100)%d人數,百分比;%%%lf ",m90_100,100.0*m90_100/n);
fprintf(fp,"優秀(80~89)%d人數,百分比;%%%lf ",m80_89,100.0*m80_89/n);
fprintf(fp,"優秀(70~79)%d人數,百分比;%%%lf ",m70_79,100.0*m70_79/n);
fprintf(fp,"優秀(60~69)%d人數,百分比;%%%lf ",m60_69,100.0*m60_69/n);
fprintf(fp,"優秀(00~50)%d人數,百分比;%%%lf ",m0_59,100.0*m0_59/n);
fclose(fp);
printf(" 結果已經寫入文件%s ",fileO);
}
main()
{
inti;
Read();
Solve();
/*printf("來自文件的數據: ");*/
/*Pnt();*/
/*Sort();*/
/*printf("按分數降序排序後的數據: ");*/
/*Pnt();*/
getchar();
}
Ⅱ c語言數組構造類型的特點
c語言數組構造類型的特點如下:
數組是相同的數據類型的元素的集合。
數組中的各元素的存儲是有先後順序的,他們在內存中按照這個先後順序放在一起。
數組元素用整個數組的名字和它自己在數組中的順序位置來表示。
數據的大小是固定的。
數組(Array)就是一些列具有相同類型的數據的集合,這些數據在內存中依次挨著存放,彼此之間沒有縫隙。
數組不是C語言的專利,Java、C++、C#、JavaScript、PHP 等其他編程語言也有數組。C語言數組屬於構造數據類型。一個數組可以分解為多個數組元素,這些數組元素可以是基本數據類型或是構造類型。因此按數組元素的類型不同,數組又可分為數值數組、字元數組、指針數組、結構數組等各種類別。
Ⅲ 數組定義方式c語言
數組的4種聲明方式:
1.先聲明再初始化
例如:
//1.聲明
int[] nums;
//初始化
nums = new int[5];
2.聲明並初始化
例如:
//2.聲明、初始化
int[] nums = new int[10];
3.創建數組同時賦值
例如:
//3.創建數組同時賦值
String[] names=new String[]{"大名","小米","夏雨荷"};
int[] ages=new int[]{21,22,21,56,13};
for (int i = 0;i < names.length;i++){
System.out.prinrln(names[i]);
}
for (int i = 0;i < ages.length;i++){
System.out.prinrln(ages[i]);
}
4.創建同時賦值,簡寫,不能寫成兩條語句
例如:
//4.創建同時賦值,簡寫,不能寫成兩條語句
String[] cities = {"上海","北京"};
(3)c語言數組元素類型擴展閱讀:
數組(Array)是有序的元素序列。若將有限個類型相同的變數的集合命名,那麼這個名稱為數組名。組成數組的各個變數稱為數組的分量,也稱為數組的元素,有時也稱為下標變數。用於區分數組的各個元素的數字編號稱為下標。數組是在程序設計中,為了處理方便, 把具有相同類型的若干元素按有序的形式組織起來的一種形式。 這些有序排列的同類數據元素的集合稱為數組。
數組是用於儲存多個相同類型數據的集合。
在C語言中, 數組屬於構造數據類型。一個數組可以分解為多個數組元素,這些數組元素可以是基本數據類型或是構造類型。因此按數組元素的類型不同,數組又可分為數值數組、字元數組、指針數組、結構數組等各種類別。
Ⅳ C語言里數組元素是什麼
#include"stdio.h"
//
頭文件就不說了吧
void
main()
//
main函數
{
int
i,a[10];
//
定義一個int
i 變數,
和一個
int
a[10]
十個元素的數組
//
注意別被
int
i,a[10]
這兩個混了。
i
是int
類型,
a
是int數組
for
(i=0;i<=9;i++)
a[i]=i;
//
這里所做的主要就是為a的全部數組元素賦值,將i 賦予a的第i的數組元素
for(i=9;i>=0;i--)
printf("%d",a[i]);
printf("/n");}
//
循環列印出a的全部元素
Ⅳ 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語言數組的定義
C語言支持一維數組和多維數組。如果一個數組的所有元素都不是數組,那麼該數組稱為一維數組。
在C語言中使用數組必須先進行定義,一維數組的定義方式為:類型說明符; 數組名 ;[常量表達式]。
其中,類型說明符是任一種基本數據類型或構造數據類型。數組名是用戶定義的數組標識符,方括弧中的常量表達式表示數據元素的個數,也稱為數組的長度。例如:
int a[10]; /* 說明整型數組a,有10個元素 */
float b[10], c[20]; /* 說明實型數組b,有10個元素,實型數組c,有20個元素 */
char ch[20]; /* 說明字元數組ch,有20個元素 */
對於數組類型說明應注意以下幾點:
1、數組的類型實際上是指數組元素的取值類型。對於同一個數組,其所有元素的數據類型都是相同的。
2、數組名的書寫規則應符合標識符的書寫規定。
3、數組名不能與其它變數名相同。例如:
int a;
float a[10];
是錯誤的。
4、方括弧中常量表達式表示數組元素的個數,如a[5]表示數組a有5個元素。但是其下標從0開始計算。因此5個元素分別為a[0], a[1], a[2], a[3], a[4]。
5、不能在方括弧中用變數來表示元素的個數,但是可以是符號常數或常量表達式。例如:
#define FD 5
// ...
int a[3+2],b[7+FD];
是合法的。但是下述說明方式是錯誤的。
int n=5;
int a[n];
6、允許在同一個類型說明中,說明多個數組和多個變數。例如:
int a,b,c,d,k1[10],k2[20];
(6)c語言數組元素類型擴展閱讀:
C語言是一門通用計算機編程語言,廣泛應用於底層開發。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標准規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。
二十世紀八十年代,為了避免各開發廠商用的C語言語法產生差異,由美國國家標准局為C語言制定了一套完整的美國國家標准語法,稱為ANSI C,作為C語言最初的標准。[1]目前2011年12月8日,國際標准化組織(ISO)和國際電工委員會(IEC)發布的C11標準是C語言的第三個官方標准,也是C語言的最新標准,該標准更好的支持了漢字函數名和漢字標識符,一定程度上實現了漢字編程。
C語言是一門面向過程的計算機編程語言,與C++,Java等面向對象的編程語言有所不同。
其編譯器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
Ⅶ C語言中都有什麼類型數組
數組類型:是由相同基本類型若干個元素組織在一起數據,它們有先後順序,也可以按這個順序對這些元素訪問。如int a[10],共有10個元素,第個元素的類型都相同,都為整型。這10 個元素,按順序分別是a[0]、a[1]、a[2]、a[3]、a[4]、a[5]、a[6]、a[7]、a[8]、a[9]。但是 int a,b,c,d;這樣定義的變數,a,b,c,d是沒有先後順序的。
所有的基本類型都能作為數組類型,例如int,long,float,double,char等等。
結構體struct也可以作為數組類型。各種類型的指針也可以作為數組類型。
Ⅷ c語言中,定義數組和引用數組時,其數組的下標的數據類型分別允許是什麼
1、C89/C90標准:定義數組時下標只允許使用整型、字元型常量,引用數組時下標可以使用整型、字元型的常量或者變數
2、C99標准:定義數組時下標可以使用整型、字元型的常量或變數,但變數必須已經賦值;引用數組時下標可以使用整型、字元型的常量或者變數。以上所說的常量及變數均包含表達式。
(8)c語言數組元素類型擴展閱讀
1、數組包含給定類型的一些對象,並將這些對象依次存儲在連續的內存空間中。每個獨立的對象被稱為數組的元素(element)。元素的類型可以是任何對象類型,但函數類型或不完整類型不能作為數組元素。
2、在數組定義中,可以將元素數量指定為一個常量表達式,或者在特定情況下,指定為涉及變數的表達式。採用這兩種方式定義的數組分別被稱為固定長度數組和長度可變數組。
3、固定長度數組可以具有任意存儲類別:可以將它們定義在所有函數的外面或語句塊的裡面,並且可以使用或不使用存儲類修飾符 static。唯一的限制是數組不能作為函數參數。一個傳入函數的數組參數需要被轉換為指向數組第一個元素的指針。
Ⅸ c語言數組定義的幾種方式
數組的定義
數組就是指用於存儲同一類型數據的集合,一個數組實際上就是一連串的變數,數組按照使用可以分為一維數組、二維數組、多維數組
數組定義的方式
數組定義的方式有四種形式,分別是:
(1)類型名[] 數組名;
(2)類型名[] 數組名 = { 初始值列表 };
(3)類型名[] 數組名 = new 類型名[ 數組大小 ];
(4)類型名[] 數組名 = new 類型名[ 數組大小 ] { 初始值列表 };
數據類型:指的是數組元素的數據類型,常見的有整形、浮點型、與字元型等
數組名:是用來統一這組相同數據類型元素的名稱,其命名規則和變數的相同
Ⅹ C語言中如何定義數組
在C語言中使用數組必須先進行定義。一維數組的定義方式為:
類型說明符
數組名
[常量表達式];
其中,類型說明符是任一種基本數據類型或構造數據類型。數組名是用戶定義的數組標識符。方括弧中的常量表達式表示數據元素的個數,也稱為數組的長度。例如:
對於數組類型說明應注意以下幾點:
1)
數組的類型實際上是指數組元素的取值類型。對於同一個數組,其所有元素的數據類型都是相同的。
2)
數組名的書寫規則應符合標識符的書寫規定。
3)
數組名不能與其它變數名相同。例如
是錯誤的。
4)
方括弧中常量表達式表示數組元素的個數,如a[5]表示數組a有5個元素。但是其下標從0開始計算。因此5個元素分別為a[0],
a[1],
a[2],
a[3],
a[4]。
5)
不能在方括弧中用變數來表示元素的個數,但是可以是符號常數或常量表達式。例如:
是合法的。但是下述說明方式是錯誤的。
6)
允許在同一個類型說明中,說明多個數組和多個變數。例如: