Lab8 王晨旭.docx

上传人:b****6 文档编号:7527550 上传时间:2023-01-24 格式:DOCX 页数:11 大小:189.92KB
下载 相关 举报
Lab8 王晨旭.docx_第1页
第1页 / 共11页
Lab8 王晨旭.docx_第2页
第2页 / 共11页
Lab8 王晨旭.docx_第3页
第3页 / 共11页
Lab8 王晨旭.docx_第4页
第4页 / 共11页
Lab8 王晨旭.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

Lab8 王晨旭.docx

《Lab8 王晨旭.docx》由会员分享,可在线阅读,更多相关《Lab8 王晨旭.docx(11页珍藏版)》请在冰豆网上搜索。

Lab8 王晨旭.docx

Lab8王晨旭

Lab8DataStructures

OBJECTIVES

Aftercompletingthisexperiment,youwillbeableto:

●UseStructures

●Typecasting

PROCEDURES

PART1Createinstancesofstructure

Createastructurecalledcarwiththefollowingmembers:

●make

●model

●year

●miles

CreateaninstanceofthecarstructurenamedmyCarandassigndatatoeachofthemembers(e.g.make—Honda,model—CRV,year—2,miles--30000).Printthecontentsofeachmemberusingprintf()function

PrintScreenofResult:

——————————————————

PART2“DateCalculation”usingstructures

(1)Definestructuretypeincludingyear、month、day.

(2)Definestructurevariable,andinitializethevariable.

(3)sumallthenumberofdaysintheyearstoredinthevariablesum,ifmeetingaleapyear,sum=sum+1;

#include〈stdio.h〉

structdate

{

intyear;

intmonth;

intday;

};

voidmain()

{

structdated;

intsum=0;

printf("\ninputthedate:

\n");

scanf("%d%d%d",&d.year,&d.month,&d.day);

switch(d.month)

{

case1:

sum=0;break;

case2:

sum=31;break;

case3:

sum=31+28;break;

case4:

sum=31+28+31;break;

case5:

sum=31+28+31+30;break;

case6:

sum=31+28+31+30+31;break;

case7:

sum=31+28+31+30+31+30;break;

case8:

sum=31+28+31+30+31+30+31;break;

case9:

sum=31+28+31+30+31+30+31+31;break;

case10:

sum=31+28+31+30+31+30+31+31+30;break;

case11:

sum=31+28+31+30+31+30+31+31+30+31;break;

case12:

sum=31+28+31+30+31+30+31+31+30+31+30;break;

}

sum+=d.day;/*天数累加*/

if(d.month>2)/*闰年处理*/

if(d.year%400==0||d.year%100!

=0&&d.year%4==0)

sum+=1;

printf("Total:

%d\n",sum);

}

Runtheprogram:

(1)Inputalegal(合理的)date,PrintScreenofResult:

(2)Inputadatewithanillegal(不合理的)month,PrintScreenofResult:

(3)Inputadatewithanillegalday,PrintScreenofResult:

(4)Rewritetheprogram,soitcangivetherightresultunderanycondition.重编,满足所有情况

PrintScreenofcode:

#include〈stdio.h〉

structdate

{

intyear;

intmonth;

intday;

};

voidmain()

{

structdated;

intsum=0;

printf("\ninputthedate:

\n");

scanf("%d%d%d",&d.year,&d.month,&d.day);

if(d.month<=12){

switch(d.month)

{

case1:

sum=0;break;

case2:

sum=31;break;

case3:

sum=31+28;break;

case4:

sum=31+28+31;break;

case5:

sum=31+28+31+30;break;

case6:

sum=31+28+31+30+31;break;

case7:

sum=31+28+31+30+31+30;break;

case8:

sum=31+28+31+30+31+30+31;break;

case9:

sum=31+28+31+30+31+30+31+31;break;

case10:

sum=31+28+31+30+31+30+31+31+30;break;

case11:

sum=31+28+31+30+31+30+31+31+30+31;break;

case12:

sum=31+28+31+30+31+30+31+31+30+31+30;break;

}

sum+=d.day;/*天数累加*/

if(d.month>2)/*闰年处理*/

if(d.year%400==0||d.year%100!

=0&&d.year%4==0)

sum+=1;

printf("Total:

%d\n",sum);}

else

printf(“error”);

}

 

PART3Inputandoutputofthestructure.

Fillintheblank.Writeaprogramtoinitialize初始化anarrayofstructuresthrough来自keyboard键盘

andthenoutputthevalueofthearray.输出值

#include

#include

main()

{structdate

{intyear;

intmonth;

intday;

};

structstu

{charnum[12];

charname[20];

charsex;

intage;

structdatebirthday;

};

typedefstructstuSTU;

STUstudent[3];

inti;

/**********program*******************************/

/***usingforlooptoinputthethreeelements**/

 

/**********end*********************************/

for(i=0;i<3;i++)

{printf("\nstudent[%d]num:

%s;name:

%s;sex:

%c;age:

%d;birthday:

%d.%d.%d",i,student[i].num,student[i].name,student[i].sex,student[i].age,student[i].birthday.year,student[i].birthday.month,student[i].birthday.day);

}

getch();

}

PrintScreenofResult:

——————————————————

PART4PassingArraysofstructures.

Whatdoesthefollowingprogramprint?

#include

#include

structinfo

{

charitem[20];

doublecost;

};

voidsomeFunction(structinfo[]);

intmain(void)

{

structinfodata[4]={{"nut",0.50},{"bolt",0.75}};

inti;

someFunction(data);

for(i=0;i<4;i++)

printf("%s,%.2f\n",data[i].item,data[i].cost);

}

voidsomeFunction(structinfovalues[])

{

inti;

for(i=0;i<2;i++)

if(values[i].cost>0.60)

{

strcpy(values[i+2].item,"washer");

values[i+2].cost=0.40;

}

else

{

strcpy(values[i+2].item,"hammer");

values[i+2].cost=12.00;

}

}

PrintScreenofResult:

——————————————————

PART5TypeConversions.

(1)Automaticconversions

main()

{

inta,b=−550;

charc='7';

floatf1=3.142,f2;

a=b/c;/*integerdividedbyacharacter*/

printf(“a=%d\n”,a);

a=f1;/*floattointegerconversion*/

printf("f1=%f……a=%d\n",f1,a);

f1=b;/*integertofloatconversion*/

printf("b=%d……f1=%f\n"b,f1);

f2=b/50.0;/*integerdividedbyafloat*/

printf("b=%d,f2=%f\n",b,f2);

}

PrintScreenofResult:

——————————————————

(2)Typecasting

main()

{floatx;

inti;

x=3.6;

i=(int)x;

printf(“x=%f,i=%d”,x,i);

}

PrintScreenofResult:

——————————————————

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 管理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1