c语言(第六章)数组-谭_第1页
c语言(第六章)数组-谭_第2页
c语言(第六章)数组-谭_第3页
c语言(第六章)数组-谭_第4页
c语言(第六章)数组-谭_第5页
已阅读5页,还剩80页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第六章数组本章目标1.了解数组的数据结构2.理解一维和多维数组的定义和关系3.了解数组元素在内存的存放规则4.了解数组元素和数组名的作用5.掌握数组的使用方法6.掌握基本的排序算法整理ppt一、数组具有的特征数组名数组元素的个数数组元素的类型。§6.1引言整理ppt二、数组的作用数组元素的作用相当于简单变量数组名代表的是数组在内存中的首地址同一个数组中的元素在内存中是按顺序连续存放的整理ppt§6.2一维数组一、一维数组的定义形式:

类型说明符数组名[常量表达式];例:inta[20];floatx[100];代表数组元素的个数其中a和x都是数组名。整理ppt1.数组名的确定方法同变量名。2.C语言用方括号[]表示数组元数个数。对于inta[5];表示有5个元素,元素的下标从0开始.数组a的元素分别为:a[0],a[1],a[2],a[3],a[4]整理ppt数组a在内存中的存放顺序:a[0]的值a[1]的值a[2]的值a[3]的值a[4]的值:注意:在没有给数组元素赋值以前,没有确定的值。整理ppt二、一维数组的引用2.引用数组元素的方式:数组名[下标]1.必须象使用变量那样,先定义,后使用则a[0]5+a[1]6为正确的算术表达式例:inta[5];a[0]=1;a[1]=2;:整理ppt例:一维数组的输入与输出。main()

{inti,a[10];for(i=0;i<10;i++)a[i]=i;for(i=0;i<=9;i++)printf(“%4d”,a[i]);}问题?将输入数据按逆序输出.整理ppt例:一维数组的输入与输出。main()

{inti,a[10];for(i=0;i<10;i++)a[i]=i;for(i=0;i<=9;i++)printf(“%4d”,a[i]);}将输入数据按逆序输出.

for(i=9;i>0;i--)printf(“%d”,a[i]);整理ppt三、数组元素赋初值对全部元素赋初值。如:inta[10]={10,11,12,13,14,15,16,17,18,19}表示数组元素的值为:a[0]=10;a[1]=11;:a[9]=19;整理ppt对部分元素赋初值(前面的连续元素)。如:在此,只有前5个元素初值确定。intb[10]={0,1,2,3,4};表示数组元素的值为:b[0]=0;b[1]=1;b[2]=2;b[3]=3;b[4]=4;整理ppt注意:不能只对不连续部分元素或后面的连续元素赋初值。语句:

inta[10]={,,,,,1,2,3,4,5};inta[10]={1,,3,,5,,7,,9,,};是错误的。整理ppt如对数组元素赋同一初值,必须一一写出:staticinta[10]={2,2,2,2,2,2,2,2,2,2};不可写成任何其他形式。若赋全部元素的初值,可省略常量表达式

inta[]={0,1,2,3};表示a[4],即只有4个元素。整理ppt一、采用循环方式对数组元素赋初值§6.3数组应用实例整理ppt二、内存与数组的关系前面已讲过:数组元素在内存中是按顺序连续存放的;重要特性:系统对超出数组元素的使用不查错。整理ppt例:#include<stdio.h>main(){inta[5]={0,1,2,3,4},i;charch[5]={'a','b','c','d','e'};for(i=0;i<10;i++)printf("a[%d]=%d,ch[%d]=%c\n",i,a[i],i,ch[i]);printf("%s",ch);}整理ppta[0]=0,ch[0]=aa[1]=1,ch[1]=ba[2]=2,ch[2]=ca[3]=3,ch[3]=da[4]=4,ch[4]=ea[5]=25185,ch[5]=]a[6]=25699,ch[6]=a[7]=23909,ch[7]=a[8]=22,ch[8]=a[9]=285,ch[9]=Abcde]

整理ppt三、一维数组的应用求Fibonacci数列的前20项。

定义数组,并赋初值

staticintf[20]={1,1};/*定义数组的前两个元素*/注:c规定只有静态数组static和外部存储数组extern才能进行初始化!(对于构造数据类型如数组、结构体进行初始化通常定义为静态存储类别)fi=fi-1+fi-2,且f1=f2=1。整理ppt用循环for求数列的后18项:注意:下标越界问题:i=2且i<20for(i=2;i<20;i++)f[i]=f[i–1]+f[i–2];整理ppt#include<stdio.h>main(){inti;staticintf[20]={1,1};for(i=2;i<20;i++)f[i]=f[i–1]+f[i–2];for(i=0;i<20;i++)

{if(i%5==0)printf("\n");printf("%12d",f[i]);

}}程序如下:整理ppt18899875556106765运行结果如下:113144159722113315843343774181整理ppt例:歌手比赛,10位评委打分,去掉最高分,最低分,得成绩。main(){intscore[10],i,max=-1,min=101,sum=0;floatmark;for(i=0;i<10;i++){printf(“pleaseenterthescore%d:”,i+1);scanf(“%d\n”,&score[i]);sum=sum+score[i];}for(i=0;i<10;i++){if(score[i]>max)max=score[i];if(score[i]<min)min=score[i];}mark=(sum-max-min)/8.0;printf(“Themarkofthissingeris%f\n”,mark);}整理ppt排序过程:(1)比较第一个数与第二个数,若为逆序a[0]>a[1],则交换;然后比较第二个数与第三个数;依次类推,直至第n-1个数和第n个数比较为止——第一趟冒泡排序,结果最大的数被安置在最后一个元素位置上(2)对前n-1个数进行第二趟冒泡排序,结果使次大的数被安置在第n-1个元素位置(3)重复上述过程,共经过n-1趟冒泡排序后,排序结束例用冒泡法对10个数排序整理ppt985420例:用冒泡法对10个数进行排序(冒泡排序法)算法:(从小到大)将两个相邻的数进行比较,将小的数调换到前头.895420859420854920854290854209第一趟结果第5次第4次第3次第2次第1次5842054820542805420885420第二趟结果第4次第3次第2次第1次整理pptmain(){inta[11],i,j,t;printf(“input10number:\n”);for(i=1;i<11;i++)scanf(“%d”,&a[i]);printf(“\n”);for(j=1;j<=9;j++)for(i=1;i<=10-j;i++)if(a[i]>a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;}printf(“thesortednumbers:\n”);for(i=1;i<11;i++)printf(“%4d”,a[i]);}将n个数送入a[1]~a[n]for(j=1ton-1)for(i=1ton-j)

a[i]>a[i+1]fta[i]a[i+1]输出a[1]~a[n]整理ppt排序过程:(1)首先通过n-1次比较,从n个数中找出最小的,将它与第一个数交换—第一趟选择排序,结果最小的数被安置在第一个元素位置上(2)再通过n-2次比较,从剩余的n-1个数中找出关键字次小的记录,将它与第二个数交换—第二趟选择排序(3)重复上述过程,共经过n-1趟排序后,排序结束例用简单选择法对10个数排序整理ppt例:用选择法对10个数进行排序。(记录下标)main(){inta[10],i,j,t,k;for(i=0;i<10;i++)scanf(“%d”,&a[i]);printf(“\n”);for(i=0;i<9;i++){k=i;/*min=>k*/for(j=i+1;j<10;j++)if(a[j]<a[k])k=j;t=a[k];a[k]=a[i];a[i]=t;}printf(“thesortednumbers:\n”);for(i=0;i<10;i++)printf(“%4d”,a[i]);printf(“\n”);}整理ppt§6.4二维数组一、二维数组的定义形式:例:inta[4][10];floatx[8][20];类型说明符数组名[常量表达式1][常量表达式2]整理ppt2.可将二维数组的元素看成为若干个特殊的一维数组。可看成:有三个特殊的一维数组b[0],b[1],b[2],每一个又有四个元素:1.不可将定义写为inta[4,10]。注意:b[0][0],b[0][1],b[0][2],b[0][3],b[1][0],b[1][1],b[1][2],b[1][3],b[2][0],b[2][1],b[2][2],b[2][3],如:intb[3][4];整理ppt3.二维数组的存放方式为:按行优先。由此可推广至三维、n维数组的定义和存放。4.初始化:即:最右边的下标变化最快。按行给二维数组赋初值:staticinta[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};或:staticinta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};整理ppt

可以对部分元素赋初值,但需表达清楚。则相当于若:staticinta[3][4]={1,2,3,8}则相当于如:staticinta[3][4]={{1,2},{3},{8}}。整理ppt可通过赋初值决定数组大小。如为二维,则只可省略第一维的大小。staticinta[][4]={1,2,3,…,12};整理ppt二、二维数组元素的引用形式:其中的下标为整型表达式,但不得越界。与一维数组元素一样,二维数组元素相当于同类型的简单变量。注意下标值应在已定义的数组大小范围内;如:inta[2][3];则a[2][3]=3的引用是不合法的。请区分定义数组a[2][3]和引用元素a[2][3]的不同。数组名[下标1][下标2]整理ppt三、程序举例a=123456b=142536例:将一个二维数组行和列元素互换,存到另一个二维数组中。例如:整理ppt例:将一个二维数组的行列互换存放到另一个数组中.即: 12 3 45 6main(){staticinta[2][3]={{1,2,3},{4,5,6}};staticintb[3][2],i,j;printf(“arraya:\n”);for(i=0;i<=1;i++){for(j=0;j<=2;j++){printf(“%5d”,a[i][j]);b[j][i]=a[i][j];}printf(“\n”);}printf(“arrayb:\n”);for(i=0;i<=2;i++){for(j=0;j<=1;j++)printf(“%5d”,b[i][j]);printf(“\n”);}}a=1 42 53 6b=整理ppt例:有一个34的矩阵,求出其中值为最大的元素的值以及它在矩阵中的位置.max=a[0][0]for(i=0to2)for(j=0to3)a[i][j]>maxftmax=a[i][j]row=icolum=j输出max,row,colum整理ppt#include<stdio.h>main(){inti,j,row=0,colum=0,max;staticinta[3][4]={{1,2,3,4},{9,8,7,6},{-10,-10,-5,2}};max=a[0][0];for(i=0;i<=2;i++)for(j=0;j<=3;j++)if(a[i][j]>max){max=a[i][j];row=i;colum=j;}printf(“max=%d,row=%d,colum=%d\n”,max,row,colum);}整理ppt注意:数组元素数据的输入必须以循环方式进行或者定义时置初值。二维数组一般用二重循环对每个元素赋值。整理ppt二维数组与一维数组的对应关系:6A[0][0]A[0][1]A[0][2]A[0][3]A[1][0]A[1][1]A[1][2]A[1][3]A[2][0]A[2][1]A[2][2]A[2][3]4913138734122A[0]A[1]A[2]A[3]A[4]A[5]A[6]A[7]A[8]A[9]A[10]A[11]整理ppt字符数组的定义字符数组的初始化与赋值字符数组的输入与输出字符串处理函数字符数组的应用举例字符数组整理ppt1、字符数组的定义方法与前面其他类型的数组的定义相同.数组类型数组名[元素个数]例如:(1)charstring[5]=“ABCD”;(2)charc[10];c[0]=‘I’;c[1]=‘‘;c[2]=‘a’;c[3]=‘m’;c[4]=‘‘;c[5]=‘h’;c[6]=‘a’;c[7]=‘p’;c[8]=‘p’;c[9]=‘y’;c[0]c[1]c[2]c[3]c[4]c[5]c[6]c[7]c[8]c[9]2、要点:数组类型:必须是char型。元素个数:为实际字符个数+1,放结束标志字符数组的定义ABCD\0整理ppt字符串的结束标志“\0”1、字符串的结束标志:“\0”:ASCII码值为0的字符。在程序中判断字符串是否结束不再是依据字符数组的长度而是查找字符串的结束标志“\0”.2、例:charstring[]=“abcdef”charstring[]={‘a’,’b’,’c’,’d’,’e’,’f’}整理ppt字符数组的初始化1、将字符逐一送入字符数组中,例如:staticcharc[10]={‘I’,‘’,‘a’,‘m’,‘‘h’,‘a’,‘p’,‘p’,‘y’};要点:在给字符数组赋初值时初值的个数不能超过字符数的长度,若初值字符的个数小于数组的长度时,字符与数组前面的元素对应,其余的元素自动赋值‘\0’(空字符)。字符数组的大小也可以省略。如:staticcharc[]={‘b’,‘o’,‘o’,‘k’};请区别字符数组与字符串的不同2、对一批字符的描述3、字符数组的赋值4、例整理ppt对一批字符的描述1、方法:采用二维数组来描述,数组的第一维为字符串的个数,第二维的元素个数为字符串中最长字符个数+1。2、例:charmenu[3][20+1]={“1----Openfile”,“2----Closefile”,“3----ExittoDOS”}staticchardiamond[5][5]={“*”,”**”,”**”,”**”,”*”}整理ppt字符数组的赋值1、在c语言中对字符串赋初值可以写成:staticcharc[]={“Iamhappy”};或staticcharc[]=“Iamhappy”;这里字符数组的长度不是10,而是11。2、将一个字符串赋值给一个字符数组,只能用在赋初值的情况下,不能用在赋值语句中.例如:charstr[11];str=“Iamhappy”;是错误的.整理ppt字符串及其结束标志无字符串变量,用字符数组处理字符串字符串结束标志:‘\0’例“hello”共5个字符,在内存占6个字节字符串长度5

hello\01041011081081110内存存放字符ASCII码字符串整理ppt例:字符数组元素的引用。main(){staticcharc[10]={‘I’,‘’,‘a’,‘m’,‘’,‘h’,‘a’,‘p’,‘p’,‘y’};inti;for(i=0;i<10;i++)printf(“%c”,c[i]);printf(“\n”);}运行结果:Iamhappy试charc[10]=“Iamhappy”整理ppt例:输出一个钻石图形。main(){staticchardiamond[5][5]={{‘‘,’’,’*’},{‘‘,’*’,’‘,’*’},{’*’,’‘,’‘,’‘,’*’},\{‘‘,’*’,’‘‘,’*’},{‘‘,’‘,’*’}};inti,j;for(i=0;i<5;i++){for(j=0;j<5;j++)printf(“%c”,diamond[i][j]);printf(“\n”);}}运行结果:********整理ppt字符串的输入与输出一、逐个字符的输入与输出用格式符“%c”输入或输出一个字符。二、将整个字符串一次输入或输出,用“%s”。如:staticcharc[]={“china”};printf(“%s”,c);三、要点:输出字符不包括结束符“\0”.用“%s”时,printf中输出项是字符数组名,而不是元素名。

printf(“%s”,c[0])错若数组长度大于字符串实际长度,也只输出到‘\0’结束。

charc[10]={“China”};printf(“%s”,c);结果:China若一个字符数组中包含一个以上的‘\0’,则遇到第一个‘\0’时就结束输出。整理ppt字符串的输入与输出1.用“%c”格式输出单个字符.例如:staticcharstr[]=“book”;for(i=0;i<4;i++)printf(“%c”,str[i]);2.用“%s”格式输出字符串.例如:staticcharstr[]=“book”;printf(“%s”,str);3.利用scanf(“%s”,str);输入字符串时,输入项只写字符数组的名称不加地址.

(C语言规定:数组名代表数组的起始地址)当利用“%s”格式输入多个字符串时,

这些字符串应以空格作为它们的分割符.在空格的位置上放上‘\0’。整理pptstaticcharstr1[5],str2[5],str3[5];scanf(“%s%s%s”,str1,str2,str3):输入数据:howareyou?在内存中数据的存储情况为:str1==“how”str2==“are”str3==“you?”如果有:charstr[13];scanf(“%s”,str);输入数据为:howareyou?在内存中数据的存储情况为:str==“how”空格后面的字符没有作为有效字符来接受.所以C语言提供了丰富的字符串处理函数解决编程负担。整理ppt字符串处理函数(包含在头文件“string.h”中)1.puts()功能:将一个字符串输出到终端,输出时自动将“\0”转化为“\n”.charstr[]=“China\nBeijing”;puts(str);2.gets()功能:从终端输入一个字符串到字符数组中.回车结束并返回字符数组的首地址.其中可以包含空格字符。3.strcat(str1,str2)功能:将两个字符串连接起来并把结果存放在第一个字符串中.要点:(1)字符数组1必须足够大足以存放两个字符串;(2)两个字符串连接后第一个字符串后面的“\0”被自动取消.只保留最后的一个“\0”.Charstr1[30]=“Iam”;charstr2[]=“teacher”;printf(“%s”,strcat(str1,str2));整理ppt4.strcpy(str1,str2)功能:将字符串2拷贝到字符串1中.要点:(1)字符串1必须足够大,足以存放字符串2.(2)字符串2可以是字符数组名也可以是字符串常量,但第一个必须为字符数组名.(3)对于字符数组不能使用赋值语句进行整体赋值.(4)可以使用strcpy(str1,str2,3)的形式将字符数组2中的前面3个字符拷贝到字符数组1中.5.strcmp(str1,str2)功能:比较两个字符串的大小.(逐个比较两个字符串的ASCII的值.)要点:(1)str1=str2………….函数值为0;(2)str1>str2………….函数值为正数(3)str1<str2………….函数值为负数整理ppt6.strlen(str)功能:测量字符数组的长度,不包括“\0”.7.strwr(str)功能:将大写字母转换为小写字母.8.strupr(str)功能:将小写字母转换为大写字母.例:当执行下面的程序且输入ABC时,输出结果为:#include<stdio.h>main()

{charss[10]=“12345”;strcat(ss,”6789”);

运行结果:ABCgets(ss);printf(“%s”,ss);}整理ppt[例]gets函数和strcmp函数的应用。#include<stdio.h>main(){charpass_str[80]; /*定义字符数组passstr*/inti=0;/*检验密码*/while(1){clrscr();printf("请输入密码\n");gets(pass_str);/*输入密码*/if(strcmp(pass_str,“password”)!=0) /*口令错*/printf("口令错误,按任意键继续");elsebreak;/*输入正确的密码,中止循环*/getch();i++;if(i==3)exit(0);/*输入三次错误的密码,退出程序*/}/*输入正确密码所进入的程序段*/}整理ppt例:程序main()

{charch[10];scanf(“%s”,ch);printf(“%s”,ch);}执行时,若从键盘输入GoodMorning,则输出为:A.GoodMorningB.GoodC.GoodMorni

D.GoodMorn b整理ppt

How\0

are\0

you?\0

#include<stdio.h>main(){chara[15],b[5],c[5];

scanf("%s%s%s",a,b,c);printf("a=%s\nb=%s\nc=%s\n",a,b,c);

scanf("%s",a);printf("a=%s\n",a);}运行情况:输入:Howareyou?输出:a=Howb=arec=you?输入:Howareyou?输出:a=Howscanf中%s输入时,遇空格或回车结束运行情况:输入:Howareyou?例字符串输入举例整理ppt例:程序main()

{charch[10];gets(ch);printf(“%s”,ch);}执行时,若从键盘输入GoodMorning,则输出为:A.GoodMorningB.GoodC.GoodMorni D.GoodMorn a整理pptmain(){inti;chara[5];scanf("%s",a);for(i=0;i<5;i++)printf("%d,",a[i]);}运行情况:(1)若输入hel,正常(2)若输入hell,正常(3)若输入hello,用%s输出时,会出现问题

hel\0

hell\0

hello输入字符串长度<数组维数例子整理ppt包含在头文件string.h字符串输出函数puts格式:puts(字符数组)功能:向显示器输出字符串(输出完,换行)说明:字符数组必须以‘\0’结束字符串输入函数gets格式:gets(字符数组)功能:从键盘输入一以回车结束的字符串放入字符数组中,并自动加‘\0’说明:输入串长度应小于字符数组维数常用的字符串处理函数

整理ppt包含在头文件string.h例#include<stdio.h>main(){charstring[80];printf(“Inputastring:”);gets(string);puts(string);}输入:Howareyou?输出:Howareyou?

常用的字符串处理函数

整理ppt字符串连接函数strcat格式:strcat(字符数组1,字符数组2)功能:把字符数组2连到字符数组1后面返值:返回字符数组1的首地址说明:字符数组1必须足够大

连接前,两串均以‘\0’结束;连接后,串1的‘\0’取消,

新串最后加‘\0’字符串拷贝函数strcpy格式:strcpy(字符数组1,字符串2)功能:将字符串2,拷贝到字符数组1中去返值:返回字符数组1的首地址说明:字符数组1必须足够大

拷贝时‘\0’一同拷贝

不能使用赋值语句为一个字符数组赋值例charstr1[20],str2[20];str1={“Hello!”};()str2=str1;()常用的字符串处理函数(1)整理ppt字符串比较函数strcmp格式:strcmp(字符串1,字符串2)功能:比较两个字符串比较规则:对两串从左向右逐个字符比较(ASCII码),直到遇到不同字符或‘\0’为止返值:返回int型整数,a.若字符串1<

字符串2,返回负整数

b.若字符串1>

字符串2,返回正整数

c.若字符串1==字符串2,返回零说明:字符串比较不能用“==”,必须用strcmp字符串长度函数strlen格式:strlen(字符数组)功能:计算字符串长度返值:返回字符串实际长度,不包括‘\0’在内例对于以下字符串,strlen(s)的值为:(1)chars[10]={‘A’,‘\0’,‘B’,‘C’,‘\0’,‘D’};(2)chars[]=“\t\v\\\0will\n”;(3)chars[]=“\x69\082\n”;答案:131常用的字符串处理函数(2)整理ppt#include<string.h>#include<stdio.h>main(){charstr1[]=”Hello!",str2[]=”Howareyou?”,str[20];intlen1,len2,len3;

len1=strlen(str1);len2=strlen(str2);

if(strcmp(str1,str2)>0){strcpy(str,str1);strcat(str,str2);}

elseif(strcmp(str1,str2)<0){strcpy(str,str2);strcat(str,str1);}elsestrcpy(str,str1);len3=strlen(str);puts(str);printf(”Len1=%d,Len2=%d,Len3=%d\n”,len1,len2,len3);}Howareyou?Hello!Len1=6,Len2=12,Len3=18例strcmp与strlen举例

整理ppt例题整理ppt例:有一个一维数组,内放10个学生成绩,写一个函数,求出平均分、最高分和最低分。floatmax=0,min=0;main()floataverage(array,n){floatave,score[10];floatarray[];intn;inti;{inti;for(i=0;i<10;i++)floataver,sum=array[0];scanf(“%f”,&score[i]);max=min=array[0];ave=average(score,10);for(i=0;i<n;i++)printf(“%6.2f,%6.2f,%6.2f\n”,{if(array[i]>max)max=array[i];max,min,ave);}elseif(array[i]<min)min=array[i];sum=sum+array[i];}aver=sum/n;return(aver);}整理ppt

二维数组应用举例

【例】给矩阵a赋值,并输出该矩阵的值。

main(){inta[3][3]={1,2,3,4,5,6,7,8,9},i,j;for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%5d",a[i][j]);printf("\n");}}

该程序的运行结果如下:

123456789整理ppt

字符串应用举例

【例】下面程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列,其它元素不变。

#include<stdio.h>#include<string.h>main(){chara[]=”clanguage”,t;inti,j,k;k=strlen(a);整理pptfor(i=0;i<=k-2;i+=2)for(j=i+2;j<k;j++)if(a[i]>a[j]){t=a[i];a[i]=a[j];a[j]=t;}puts(a);printf(“\n”);}

运行结果为:alancuegg。整理ppt作业:整理ppt例:汽车固定速度前进,里程表为一对称数95859,两小时后里程表又为一新对称数。求车速及新对称数

main(){intt,j,a[5];longinti,temp,k;for(i=95859+1;;i++){temp=i;k=10000;for(t=0;t<5;t++){a[t]=temp/k;temp=temp%k;k=k/10;}if((a[0]==a[4])&&(a[1]==a[3])){for(j=0;j<5;j++)printf(“%d”,a[j]);printf(“NewVelocityis:%d\n”,(i-95859)/2);break;}}}整理ppt作业:有4个学生,每人3门课。已知各课成绩,求每门课的平均成绩和每个学生的平均成绩。Cour1cour2cour3stud1788692stud2627365stud3909395stud4827385整理ppt作业:将一个数组中的值按逆序重新存放。例:原序:8,6,5,4,1改为:1,4,5,6,8

整理pptMain(){inti,j;floatsum,stud_ave[4],cour_ave[3];staticfloatscore[4][3]={{78,86,92},{62,73,65},{90,93,95},{82,73,86}};for(i=0;i<=3;i++){sum=0.0;for(j=0;j<=2;j++)sum=sum+score[i][j];stud_ave[i]=sum/3;printf(“average%dis:%6.2f\n”,i+1,stud_ave[i]);}for(j=0;j<=2;j++){sum=0.0;for(i=0;i<=3;i++)sum=sum+score[i][j];cour_ave[j]=sum/4;printf(“aceragecourse%dis:%6.2f\n”,j+1,cour_ave[j]);}}

作业:有4个学生,每人3门课。已知各课成绩,求每门课的平均成绩和每个学生的平均成绩。整理ppt作业:将一个数组中的值按逆序重新存放。例:原序:8,6,5,4,1改为:1,4,5,6,8

main(){intn=5,I,temp;staticinta[5]={8,6,5,4,1}for(i=0;i<n/2;i++){temp=a[i];a[i]=a[n-i-1];a[n-i-1]=temp;}for(I=0;i<n;i++)printf(“%4d”,a[i]);}整理ppt例:分析下面的程序,写出结果.main(){intn[3][3],i,j;for(i=0;i<3;i++)for(j=0;j<3;j++) n[i][j]=i+j;for(i=0;i<2;i++)for(j=0;j<2;j++) n[i+1][j+1]+=n[i][j];printf(“%d\n”,n[i][j]);}运行结果为:6整理ppt例:分析下面的程序,写出结果.main(){inti=0;chars1[10]=“abc”,s2[10]=“efg”;strcat(s1,s2);while(s1[i++]!=‘\0’)s2[i]=s1[i];puts(s2);}运行结果为:整理ppt作业:由键盘输入三个英文单词,将其按从小到大的顺序排列输出。整理ppt#include“string.h”#include“stdio.h”voidmain(){chars[3][20],t[20];inti,j;for(j=0;j<3;j++)gets(s[j]);for(i=0;i<2;i++)for(j=0;j<2-i;j++)if(strcmp(s[j],s[j+1])>0){strcpy(t,s[j]);strcpy(s[j],s[j+

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论