阵列c语言,C语言结构体阵列的定义
C語言結構體陣列的定義以下文字資料是由(歷史新知網www.lishixinzhi.com)小編為大家搜集整理后發布的內容,讓我們趕快一起來看一下吧!
C語言結構體陣列的定義
1、C語言結構體陣列的定義:陣列是有序的并且具有相同型別的資料的集合。
2、結構陣列就是具有相同結構型別的變數集合。假如要用C語言,定義一個班級40個同學的姓名、性別、年齡和住址, 可以做成一個結構陣列。
結構陣列成員的訪問是以陣列元素為結構變數的,它的形式為:
1、結構陣列元素—成員名。
2、例如:student[0].name,student[30].age
3、實際上結構陣列相當于一個二維構造, 第一維是結構陣列元素, 每個元素是一個結構變數, 第二維是結構成員。
注意:結構陣列的成員也可以是陣列變數。
C語言結構體陣列的定義是什么?
結構陣列就是具有相同結構型別的變數集合。
假如要定義一個班級40個同學的姓名、性別、年齡和住址,?可以定義成一個結構陣列。如下所示:
struct{
char?name[8];
char?sex[2];
int?age;
char?addr[40];
}student[40];
也可定義為:
struct?string{
char?name[8];
char?sex[2];
int?age;
char?addr[40];
};
struct?string?student[40]。
C語言是一門通用計算機程式語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低階儲存器、產生少量的機器碼以及不需要任何執行環境支援便能執行的程式語言。
盡管C語言提供了許多低階處理的功能,但仍然保持著良好跨平臺的特性,以一個標準規格寫出的C語言程式可在許多電腦平臺上進行編譯,甚至包含一些嵌入式處理器(微控制器或稱MCU)以及超級電腦等作業平臺。
C語言結構體陣列
結構陣列就是具有相同結構型別的變數集合。
假如要定義一個班級40個同學的姓名、性別、年齡和住址, 可以定義成一個結構陣列。如下所示:
struct{ char name[8]; char sex[2]; int age; char addr[40]; }student[40];
也可定義為:
struct string{ char name[8]; char sex[2]; int age; char addr[40]; }; struct string student[40];
scanf_s("%s %d %d %d", s[p].name,10,s[p].score[0],1, s[p].score[1],1, s[p].score[2]),1;
前面的name不用加& 因為是陣列名 但是后面的score都需要加&的啊、
c語言結構體陣列
引數2 和你 宣告的不同
C語言結構體陣列的使用
(1)初始化語句中的每個初始化值用單引號引起來,即改為iA[N]={{‘1’,‘2’},{‘1’,‘1’},{‘1’,‘3’}},B[N]={{‘1’,‘1’},{‘1’,‘3’},{‘1’,‘5‘}};
(2)輸出語句printf("%s.%s ",(A[m].a),(A[m].b));中的%s改成%c
急!c語言結構體陣列的問題
#include
#include
struct student
{
int num;
char name[20];
double class1;
double class2;
double class3;
};
struct student stu[20];
void input()
{
int i;
for(i=0;i<5;i++)
{
scanf("%d%s%lf%lf%lf",&stu[i].num,stu[i].name,&stu[i].class1,&stu[i].class2,&stu[i].class3);
}
}
void average()
{
int i;
for(i=0;i<5;i++)
{
printf("Student %s's average is %lf\n",stu[i].name,(stu[i].class1+stu[i].class2+stu[i].class3)/3);
}
}
void class_average()
{
int i,j;
double sum = 0;
for(i=0;i<5;i++)
{
sum+=stu[i].class1;
}
printf("class 1's average is %lf\n",sum/5);
sum = 0;
for(i=0;i<5;i++)
{
sum+=stu[i].class2;
}
printf("class 2's average is %lf\n",sum/5);
sum = 0;
for(i=0;i<5;i++)
{
sum+=stu[i].class3;
}
printf("class 3's average is %lf\n",sum/5);
}
void class()
{
int i,j,k;
double maxscore;
k = 0;
maxscore = -1;
for(i=0;i<5;i++)
{
if((stu[i].class1+stu[i].class2+stu[i].class3)/3>maxscore)
{
maxscore = (stu[i].class1+stu[i].class2+stu[i].class3)/3;
k = i;
}
}
printf("The highest average score is:%s\n",stu[k].name);
}
void class_max()
{
int i,j,turn1,turn2,turn3;
double max1=-1,max2=-1,max3=-1;
for(i=0;i<5;i++)
{
if(stu[i].class1>max1)
{
max1 = stu[i].class1;
turn1 = i;
}
}
for(i=0;i<5;i++)
{
if(stu[i].class2>max2)
{
max2 = stu[i].class2;
turn2 = i;
}
}
for(i=0;i<5;i++)
{
if(stu[i].class3>max3)
{
max3 = stu[i].class3;
turn3 = i;
}
}
printf("The high‘s score of class1 is %s %lf\n",stu[turn1].name,max1);
printf("The high‘s score of class2 is %s %lf\n",stu[turn2].name,max2);
printf("The high‘s score of class3 is %s %lf\n",stu[turn3].name,max3);
}
int main()
{
input();
class_average();
return 0;
}
你看看吧!我測試過了 能用,具體的輸出格式 你來決定,輸入資料要這樣輸入
001 liming 87.00 94.00 79.00
002 chenfei 68.00 89.00 82.00
003 sunjie 78.00 90.00 74.00
004 hewei 69.00 70.00 62.00
005 liuli 84.00 92.00 81.00
C語言結構體陣列的初始化
同學,你注意到了Create()函式里面,你又定義了一句:
List pr;
了么?這句話時關鍵,首先,你在main 函式(我猜應該是main吧)中寫道:
List pr1=Creat("p1",2,1); Insert(&pr1);
看,你這個pr1是個區域性變數吧?只在main()中有效的。而你上面那個Create中定義的呢?也是個區域性變數,只在Create()中有效。所以,即使你在Create()中費勁全力為pr賦值。等呼叫完Create()后,pr還是會消亡的,回到main,時,這里的pr1就是另一個List變量了。
總而言之,Creat()里面的pr和main()里面的pr1是完全不同的兩個變數。要想讓他們變成一個變數。可選用指標傳參。或者定義成全域性變數。
另外,我一看到你的描述的那個“燙”字,就知道你用的是VC6.0吧?呵呵
c語言結構體陣列問題
理解有誤
你的陣列vCPUWRITE_Rx1它的型別是char []也就是說 它是一個8個字元的char型陣列 而不是結構體陣列
結構體型別為struct tag_ID501
這里用了一個很常用的方式 即通過巨集定義dCPUWRITE_Rx1 把char陣列vCPUWRITE_Rx1對映成了struct tag_ID501 (二者都是占8個位元組的空間 所以可以這樣做 不然會出錯)
所以呼叫的時候可以
dCPUWRITE_Rx1.CPUWRITE_DAT1 = ...
dCPUWRITE_Rx1.CPUWRITE_DAT4...
其他的元素類似
C語言結構體陣列問題
遍歷結構體陣列與遍歷普通陣列的方法是完全一樣的。下面提供一個例子作參考。#include "stdafx.h"If the vc++6.0, with this line.#include "stdio.h"struct stu{ int num; char *name,sex; float score;}boy[2]={ {1,"ck",'M',100}, {2,"aa",'W',99}};int main(void){ struct stu *p; for(p=boy;pnum,p->name,p->sex,p->score); return 0;}輸出如圖片:當boy的元素n太大(如幾千或幾萬以上)時,主函式中可增設一個structstu*pend指標,事先計算出pend=boy+n;,for回圈控制語句寫p
分頁:
1
23
總結
以上是生活随笔為你收集整理的阵列c语言,C语言结构体阵列的定义的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 推荐系统:协同过滤及其利弊
- 下一篇: 智能楼宇3D虚拟仿真实训平台