c语言结构体数组的输入输出 c语言 结构体输入输出问题。。。

C\u8bed\u8a00\u7ed3\u6784\u4f53\u6570\u7ec4 \u7684\u8f93\u5165\u65b9\u5f0f

C
\u8bed\u8a00\u4e2d\uff0c\u7ed3\u6784\u4f53(struct)\u662f\u4e00\u79cd\u6570\u636e\u7ed3\u6784\uff0c\u662fC\u8bed\u8a00\u4e2d\u805a\u5408\u6570\u636e\u7c7b\u578b(aggregate data type)\u7684\u4e00\u7c7b\u3002\u7ed3\u6784\u4f53\u53ef\u4ee5\u88ab\u58f0\u660e\u4e3a\u53d8\u91cf\u3001\u6307\u9488\u6216\u6570\u7ec4\u7b49\uff0c\u7528\u4ee5\u5b9e\u73b0\u8f83\u590d\u6742\u7684\u6570\u636e\u7ed3\u6784\u3002
\u7ed3\u6784\u4f53\u540c\u65f6\u4e5f\u662f\u4e00\u4e9b\u5143\u7d20\u7684\u96c6\u5408\uff0c\u8fd9\u4e9b\u5143\u7d20\u79f0\u4e3a\u7ed3\u6784\u4f53\u7684\u6210\u5458(member)\uff0c\u4e14\u8fd9\u4e9b\u6210\u5458\u53ef\u4ee5\u4e3a\u4e0d\u540c\u7684\u7c7b\u578b\uff0c\u6210\u5458\u4e00\u822c\u7528\u540d\u5b57\u8bbf\u95ee\u3002
\u5b9a\u4e49\u4e0e\u58f0\u660e
\u7ed3\u6784\u4f53\u7684\u5b9a\u4e49\u5982\u4e0b\u6240\u793a\uff0cstruct\u4e3a\u7ed3\u6784\u4f53\u5173\u952e\u5b57\uff0ctag\u4e3a\u7ed3\u6784\u4f53\u7684\u6807\u5fd7\uff0cmember-list\u4e3a\u7ed3\u6784\u4f53\u6210\u5458\u5217\u8868\uff0c\u5176\u5fc5\u987b\u5217\u51fa\u5176\u6240\u6709\u6210\u5458\uff1bvariable-list\u4e3a\u6b64\u7ed3\u6784\u4f53\u58f0\u660e\u7684\u53d8\u91cf\u3002
\u5728\u5b9e\u9645\u5e94\u7528\u4e2d\uff0cC\u8bed\u8a00\u7ed3\u6784\u4f53\u6570\u7ec4\u5e38\u88ab\u7528\u6765\u8868\u793a\u4e00\u4e2a\u62e5\u6709\u76f8\u540c\u6570\u636e\u7ed3\u6784\u7684\u7fa4\u4f53\uff0c\u6bd4\u5982\u4e00\u4e2a\u73ed\u7684\u5b66\u751f\u3001\u4e00\u4e2a\u8f66\u95f4\u7684\u804c\u5de5\u7b49\u3002
\u5728C\u8bed\u8a00\u4e2d\uff0c\u5b9a\u4e49\u7ed3\u6784\u4f53\u6570\u7ec4\u548c\u5b9a\u4e49\u7ed3\u6784\u4f53\u53d8\u91cf\u7684\u65b9\u5f0f\u7c7b\u4f3c\uff1b
\u4f8b\uff1a
struct stu{
char*name;//\u59d3\u540d
int num;//\u5b66\u53f7
int age;//\u5e74\u9f84
char group;//\u6240\u5728\u5c0f\u7ec4
float score;//\u6210\u7ee9
}class[5];
\u8868\u793a\u4e00\u4e2a\u73ed\u7ea7\u67095\u4e2a\u5b66\u751f\u3002

\u6269\u5c55\u8d44\u6599\uff1a\u7ed3\u6784\u4f53\u6570\u7ec4\u7684\u5f15\u7528\u4e0e\u5f15\u7528\u4e00\u4e2a\u7ed3\u6784\u4f53\u53d8\u91cf\u5728\u539f\u7406\u4e0a\u662f\u4e00\u6837\u7684\u3002\u53ea\u4e0d\u8fc7\u7ed3\u6784\u4f53\u6570\u7ec4\u4e2d\u6709\u591a\u4e2a\u7ed3\u6784\u4f53\u53d8\u91cf\uff0c\u6211\u4eec\u53ea\u9700\u5229\u7528for\u5faa\u73af\u4e00\u4e2a\u4e00\u4e2a\u5730\u4f7f\u7528\u7ed3\u6784\u4f53\u6570\u7ec4\u4e2d\u7684\u5143\u7d20\u3002
\u4e0b\u9762\u7f16\u5199\u4e00\u4e2a\u7a0b\u5e8f\uff0c\u7f16\u7a0b\u8981\u6c42\uff1a\u4ece\u952e\u76d8\u8f93\u51655\u4e2a\u5b66\u751f\u7684\u57fa\u672c\u4fe1\u606f\uff0c\u5982\u59d3\u540d\u3001\u5e74\u9f84\u3001\u6027\u522b\u3001\u5b66\u53f7\uff0c\u7136\u540e\u5c06\u5b66\u53f7\u6700\u5927\u7684\u5b66\u751f\u7684\u57fa\u672c\u4fe1\u606f\u8f93\u51fa\u5230\u5c4f\u5e55\u3002
#include
#include
struct STU
{
char name[20];
int age;
char sex;
char num[20];
};
void OutputSTU(struct STU stu[5]);
//\u51fd\u6570\u58f0\u660e,\u8be5\u51fd\u6570\u7684\u529f\u80fd\u662f\u8f93\u51fa\u5b66\u53f7\u6700\u5927\u7684\u5b66\u751f\u4fe1\u606f
int main(void)
{
int i;
struct STU stu[5];
for(i=0;i<5;++i)
{
printf("\u8bf7\u8f93\u5165\u7b2c%d\u4e2a\u5b66\u751f\u7684\u4fe1\u606f:",i+1);
scanf("%s%d%c%s",
stu.name,
&stu
.age,&stu
.sex,stu<
i>.num);/*%c
\u524d\u9762\u8981\u52a0\u7a7a\u683c,\u4e0d\u7136\u8f93\u5165\u65f6\u4f1a\u5c06\u7a7a\u683c\u8d4b\u7ed9%c*/
}
OutputSTU(stu);
return 0;
}
void OutputSTU(struct STU stu[5])
{
struct STU stumax=stu[0];
int j;
for(j=1;j<5;++j)
{
if(strcmp(stumax.num,stu[j]
.num)<0)//strcmp\u51fd\u6570\u7684\u4f7f\u7528
{
stumax=stu[j];
}
}
printf("\u5b66\u751f\u59d3\u540d\uff1a%s\u5b66\u751f\u5e74\u9f84\uff1a%d\u5b66\u751f\u6027\u522b\uff1a%c\u5b66\u751f\u5b66\u53f7\uff1a
%s\n",stumax.name,
stumax.age,stumax.
sex,stumax.num);
}
\u8f93\u51fa\u7ed3\u679c\u662f\uff1a
\u8bf7\u8f93\u5165\u7b2c1\u4e2a\u5b66\u751f\u7684\u4fe1\u606f:\u5c0f\u7ea222 F Z1207031
\u8bf7\u8f93\u5165\u7b2c2\u4e2a\u5b66\u751f\u7684\u4fe1\u606f:\u5c0f\u660e21 M Z1207035
\u8bf7\u8f93\u5165\u7b2c3\u4e2a\u5b66\u751f\u7684\u4fe1\u606f:\u5c0f\u4e0323 F Z1207022
\u8bf7\u8f93\u5165\u7b2c4\u4e2a\u5b66\u751f\u7684\u4fe1\u606f:\u5c0f\u6b2320 F Z1207015
\u8bf7\u8f93\u5165\u7b2c5\u4e2a\u5b66\u751f\u7684\u4fe1\u606f:\u5c0f\u592919 M Z1207024
\u5b66\u751f\u59d3\u540d\uff1a\u5c0f\u660e\u5b66\u751f\u5e74\u9f84\uff1a21\u5b66\u751f\u6027\u522b\uff1aM\u5b66\u751f\u5b66\u53f7\uff1aZ1207035
\u53c2\u8003\u8d44\u6599\uff1a
\u767e\u5ea6\u767e\u79d1\u2014\u2014\u7ed3\u6784\u4f53

#include "stdio.h"
void main()
{
struct score
{
int chi;
int math;
};
struct student
{
int num;
char name[10];//\u8fd9\u513f\u5e94\u8be5\u662f\u6570\u7ec4\u5427\u3002\u3002
struct score study;
}a[3],*p;
int i;
for(i=0;i<3;i++)
scanf("%d%s%d%d",&a[i].num,a[i].name,&a[i].study.chi,&a[i].study.math);//\u591a\u4e86\u4e00\u4e2a\u201c\uff05\u201d\u53f7
for(p=a;p<a+3;p++)
printf("%-3d%-5s%-4d%-4d\n",(*p).num,(*p).name,(*p).study.chi,(*p).study.math);
}

C

语言中,结构体(struct)是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。

结构体同时也是一些元素的集合,这些元素称为结构体的成员(member),且这些成员可以为不同的类型,成员一般用名字访问。

定义与声明

结构体的定义如下所示,struct为结构体关键字,tag为结构体的标志,member-list为结构体成员列表,其必须列出其所有成员;variable-list为此结构体声明的变量。

在实际应用中,C语言结构体数组常被用来表示一个拥有相同数据结构的群体,比如一个班的学生、一个车间的职工等。

在C语言中,定义结构体数组和定义结构体变量的方式类似;

例:

struct stu{

char*name;//姓名

int num;//学号

int age;//年龄

char group;//所在小组

float score;//成绩

}class[5];

表示一个班级有5个学生。

扩展资料:

结构体数组的引用与引用一个结构体变量在原理上是一样的。只不过结构体数组中有多个结构体变量,我们只需利用for循环一个一个地使用结构体数组中的元素。

下面编写一个程序,编程要求:从键盘输入5个学生的基本信息,如姓名、年龄、性别、学号,然后将学号最大的学生的基本信息输出到屏幕。

#include&lt;stdio.h&gt;

#include&lt;string.h&gt;

struct STU

{

char name[20];

int age;

char sex;

char num[20];

};

void OutputSTU(struct STU stu[5]);

//函数声明,该函数的功能是输出学号最大的学生信息

int main(void)

{

int i;

struct STU stu[5];

for(i=0;i&lt;5;++i)

{

printf("请输入第%d个学生的信息:",i+1);

scanf("%s%d%c%s",

stu&lt;i&gt;.name,

&stu&lt;i&gt;

.age,&stu&lt;i&gt;

.sex,stu&lt;

i&gt;.num);/*%c

前面要加空格,不然输入时会将空格赋给%c*/

}

OutputSTU(stu);

return 0;

}

void OutputSTU(struct STU stu[5])

{

struct STU stumax=stu[0];

int j;

for(j=1;j&lt;5;++j)

{

if(strcmp(stumax.num,stu[j]

.num)&lt;0)//strcmp函数的使用

{

stumax=stu[j];

}

}

printf("学生姓名:%s学生年龄:%d学生性别:%c学生学号:

%s
",stumax.name,

stumax.age,stumax.

sex,stumax.num);

}

输出结果是:

请输入第1个学生的信息:小红22 F Z1207031

请输入第2个学生的信息:小明21 M Z1207035

请输入第3个学生的信息:小七23 F Z1207022

请输入第4个学生的信息:小欣20 F Z1207015

请输入第5个学生的信息:小天19 M Z1207024

学生姓名:小明学生年龄:21学生性别:M学生学号:Z1207035

参考资料:

百度百科——结构体





  • c璇█缂栫▼:寤虹珛涓涓缁撴瀯浣撴暟缁?
    绛旓細涓銆佽瀹氫箟涓や釜缁撴瀯浣锛屼竴涓槸鏃ユ湡骞存湀鏃ワ紝涓涓槸鍛樺伐銆備簩銆佺▼搴忓寘鍚笁涓姛鑳斤細1銆佺粨鏋鏁扮粍鐨勮緭鍏銆2銆佺粨鏋勬暟缁勭殑杈撳嚭銆3銆佺粺璁″钩鍧囧伐璧勩傛牴鎹紪绋嬩範鎯紝涓夊姛鑳借鍐欐垚鐙珛鍑芥暟锛屾柟渚挎墿灞曞拰璋冪敤銆俻s:鍛樺伐鏁伴噺瀹氫箟鎴愬父閲忥紝涔熶负缂栫▼涔犳儻锛屼究浜庝慨鏀广傚彟澶栵紝鏃ユ湡楠岃瘉鎴戝彧鍐欎簡鏈堜唤妫娴嬬粰浣犲弬鑰冦傞渶鎵╁睍锛岃嚜琛...
  • c璇█缁撴瀯浣撴暟缁勭殑杈撳叆杈撳嚭
    绛旓細璇█涓紝缁撴瀯浣(struct)鏄竴绉嶆暟鎹粨鏋勶紝鏄C璇█涓仛鍚堟暟鎹被鍨(aggregate data type)鐨勪竴绫汇傜粨鏋勪綋鍙互琚0鏄庝负鍙橀噺銆佹寚閽堟垨鏁扮粍绛夛紝鐢ㄤ互瀹炵幇杈冨鏉傜殑鏁版嵁缁撴瀯銆傜粨鏋勪綋鍚屾椂涔熸槸涓浜涘厓绱犵殑闆嗗悎锛岃繖浜涘厓绱犵О涓缁撴瀯浣撶殑鎴愬憳(member)锛屼笖杩欎簺鎴愬憳鍙互涓轰笉鍚岀殑绫诲瀷锛屾垚鍛樹竴鑸敤鍚嶅瓧璁块棶銆傚畾涔変笌澹版槑 缁撴瀯浣撶殑...
  • C璇█ 鐢缁撴瀯浣绫诲瀷鏁扮粍缂栫▼瀹炵幇杈撳叆5涓鐢熺殑瀛﹀彿濮撳悕骞虫椂鎴愮哗鏈熶腑鎴 ...
    绛旓細/*骞虫椂鎴愮哗姣斾緥*/float sco2Ratio = 0.2; /*鏈熶腑鎴愮哗姣斾緥*/float sco3Ratio = 0.7; /*鏈熸湯鎴愮哗姣斾緥*/stu[stuIndex].totalScore = stu[stuIndex].score1 * sco1Ratio +stu[stuIndex].score2 * sco2Ratio +stu[stuIndex].score3 * sco3Ratio;}/*杈撳嚭瀛︾敓鎴愮哗*/void printInfo (stud...
  • c璇█缁撴瀯浣涓竴涓彉閲忔槸鏁扮粍,姹傛暀楂樻墜璇ュ浣杈撳叆杈撳嚭
    绛旓細娌℃湁鍒殑鍔炴硶锛屽敮涓鐨勬柟娉曟槸寰幆锛屼竴涓竴涓杈撳嚭浣犲彲浠ュ啓涓涓氱敤鐨勮緭鍑烘暣鍨鏁扮粍鐨勬柟娉曪紝鍙傛暟鏄暣褰㈡寚閽堝拰闇瑕佹樉绀虹殑鏁存暟鐨勬暟閲忥紝杩欐牱澶勭悊璧锋潵灏辨柟渚夸簡
  • 鐢缁撴瀯浣撹緭鍏涓や釜瀛︾敓鐨勫鍙枫佸鍚嶅拰鎴愮哗,杈撳嚭 鎴愮哗杈冮珮鐨勫鐢熺殑瀛﹀彿...
    绛旓細1銆侀鍏堝湪缂栫▼杞欢涓紝寮曞叆澶撮儴鐨勬柟娉曚唬鐮併2銆佸疄鐜板姩鎬鏁扮粍鍦缁撴瀯浣涓棿鐨勬柟娉曚唬鐮侊紝濡備笅鍥炬墍绀恒3銆佽繍琛屾祴璇曠殑缁撴灉锛屽涓嬪浘鎵绀恒4銆佹帴鐫杈撳叆瀹炵幇鍔ㄦ佹暟缁勫湪缁撴瀯浣撴湯灏剧殑鏂规硶浠g爜锛屽涓嬪浘鎵绀恒5銆佹渶鍚庤繍琛屾祴璇曠粨鏋滐紝濡備笅鍥炬墍绀猴紝灏卞畬鎴愪簡缁撴瀯浣撲腑浣跨敤鍔ㄦ佹暟缁勮緭鍑烘暟鎹
  • c璇█缁撴瀯鎬鏁扮粍
    绛旓細1銆C璇█缁撴瀯浣撴暟缁勭殑瀹氫箟锛氭暟缁勬槸鏈夊簭鐨勫苟涓斿叿鏈夌浉鍚岀被鍨嬬殑鏁版嵁鐨勯泦鍚堛2銆缁撴瀯鏁扮粍灏辨槸鍏锋湁鐩稿悓缁撴瀯绫诲瀷鐨勫彉閲忛泦鍚堛傚亣濡傝鐢–璇█锛屽畾涔変竴涓彮绾40涓悓瀛︾殑濮撳悕銆佹у埆銆佸勾榫勫拰浣忓潃, 鍙互鍋氭垚涓涓粨鏋勬暟缁勩傜粨鏋勬暟缁勬垚鍛樼殑璁块棶鏄互鏁扮粍鍏冪礌涓虹粨鏋勫彉閲忕殑锛屽畠鐨勫舰寮忎负锛1銆佺粨鏋勬暟缁勫厓绱犫旀垚鍛樺悕銆2銆佷緥濡...
  • ...杈撳叆浜虹殑濮撳悕鐒跺悗灏嗚繖涓鍚嶇浉鍏崇殑缁撴瀯浣撴暟缁涓殑鏁版嵁閮杈撳嚭鍑烘潵...
    绛旓細h>#include<string.h>#define N 20struct STUD { char name[40]; int age,sex,number; };void main() { struct STUD a[N]; char name[40]; int i; for ( i=0;i<N;i++ ) scanf("%s %d %d %d",a[i].name,&a[i].age,&a[i].sex,&a[i].number); printf("杈撳叆...
  • 鐢C璇█缁撴瀯浣瑙e喅 鈥滀粠閿洏杈撳叆浜斾釜鐢ㄦ埛鐨勬暟鎹,鍖呮嫭濮撳悕鍜岀數璇濆彿鐮,瑕 ...
    绛旓細鐢ㄥ湪鍐掓场鎺掑簭鐨勮繃绋嬩腑浜ゆ崲鏁版嵁int main(){for (int i = 0; i < 5; i++)//杈撳叆 5 涓鐢熺殑鍩烘湰淇℃伅{scanf_s("%s %s", stu[i].Name, 10, &stu[i].PhoneNumber, 15);//杈撳叆瀛楃涓诧紝浣跨敤 %s 鏍囪銆傚叾涓瘡涓瓧绗︿覆浣跨敤鈥滅┖鏍尖濆垎寮//濡傛灉杈撳叆鐨勫瓧绗︿覆鍖呭惈鈥滅┖鏍尖濓紝浣跨敤 gets 鍑芥暟}...
  • c璇█ 鎬庝箞鎶婁竴涓缁撴瀯浣撴暟缁鍐欏嚭鍒版枃鏈
    绛旓細绠鍗曞姙娉曠敤2杩涘埗鏂规硶鎵撳紑杈撳嚭鏂囦欢锛屼緥濡傦細struct SA sa[10];if ( (fout = fopen(nameout,"wb") ) == NULL ) { printf("\007Cann't open output file: %s ", nameout);exit(1);};寰幆锛屼竴涓缁撴瀯涓涓粨鏋勫湴 杈撳嚭锛歠or (i=0;i<10;i++) fwrite(&sa[i],sizeof(struct SA),1,...
  • 濡備綍杈撳嚭涓涓缁撴瀯浣涓殑鏁扮粍??
    绛旓細棣栧厛浣犵殑寰幆鐨勫垽鏂璸<str.length锛C璇█涓繖鏍锋槸鑾峰彇涓嶅埌闀垮害鐨勶紝浣犲彲浠ヨ瘯璇昿<sizeof(str)/sizeof(str[0]);杈撳嚭璇彞鏀规垚 printf("%s,%d", str[i].ch, str[i].length);灏卞彲浠ヨ緭鍑轰簡 typedef struct{ char *ch; int length;} Str;int main() { Str str[2] = {{"ab",1}...
  • 扩展阅读:c语言struct结构体数组 ... c语言中数组的输入 ... c语言数组的下标范围 ... c语言按从小到大输出 ... c语言结构体怎么输出 ... c语言输入数组怎么输 ... c语言将12345倒序输出 ... c语言结构体数组拷贝 ... c语言结构体定义和使用 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网