文档库 最新最全的文档下载
当前位置:文档库 › 实验六:数组1

实验六:数组1

实验六:数组1
实验六:数组1

实验六数组

一、实验目的与要求

1.掌握一维、二维数组的定义、赋值和输入输出的方法;

2.掌握字符数组的使用;

3.掌握与数组有关的算法(例如排序算法)。

二、实验内容

1、给整型二维数组 b[3][4]输入12个数据,计算并输出数组中所有正数之和、所有负数之和。

2、青年歌手参加歌曲大奖赛,有10个评委进行打分,试编程求这位选手的平均得分(去掉一个最高分和一个最低分)。

分析:这道题的核心是排序。将评委所打的10个分数利用数组按增序(或降序)排列,计算数组中除第一个和最后一个分数以外的数的平均分。

1==========================================

#include

int main()

{

int a[3][4];

int i,j,n,m,sum=0,lsum=0;

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

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

{

scanf("%d",&a[i][j]);

If (a[i][j]>0)

sum+=a[i][j];

else

lsum+=a[i][j];

}

printf("所有正数和为:%d\n负数和为:%d\n",sum,lsum);

}

2=================================================

#include

int main()

{

float a[10],sum=0;

int i,j,n,temp;

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

scanf("%f",&a[i]);

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

{

n=i;

for(j=i+1;j<10;j++)

if(a[n]>a[j])

n=j;

temp=a[i];

a[i]=a[n];

a[n]=temp;

}

for(i=1;i<9;i++)

sum+=a[i];

printf("选手得分为:%.2f\n",sum/8); }

实验六 一维数组程序设计

实验六一维数组程序设计 一、实验学时 2学时 二、实验目的 (一)掌握一维数组的定义、初始化方法; (二)掌握一维数组中数据的输入和输出方法; (三)掌握与一维数组有关的程序和算法; (四)了解用数组处理大量数据时的优越性。 三、预习要求 (一)理解数组的概念、利用数组存放数据有何特点; (二)一维数组的定义、初始化方法; (三)一维数组中数据的输入和输出方法。 四、实验内容 (一)下面的几个程序都能为数组元素赋值,请输入程序并运行。比较一下这些赋值方法的异同。 1.在定义数组的同时对数组初始化。 /* c6-1.c */ /*在定义数组的同时对数组初始化*/ #include "stdio.h" void main( ) { int a[4]={0,1,2,3}; printf("\n%d %d %d %d\n",a[0],a[1],a[2],a[3]); } 2.不使用循环对单个数组元素赋值。 /* c6-2.c */ /*不使用循环对单个数组元素赋值*/ #include "stdio.h" void main( ) { int a[4]; a[0]=2;a[1]=4;a[2]=6;a[3]=8; printf("\n%d %d %d %d\n",a[0],a[1],a[2],a[3]); } 3.用循环结构,从键盘输入为每个数组元素赋值,输出各数组元素。 /* c6-3.c */ /*利用循环通过键盘对数组元素赋值*/ #include "stdio.h" void main( ) { int i,a[4]; for(i=0; i<4; i++) scanf("%d",&a[i]); printf("\n"); for(i=0; i<4; i++) printf("%d ",a[i]);

C语言程序设计实验报告(数组)

C语言程序设计实验报告(数组) 1实验目的 (1)熟练掌握一维数组,二维数组的定义,初始化和输入、输出方法; (2)熟练掌握字符数组和字符串函数的使用; (3)掌握与数组有关的常用算法(查找、排序等)。 2实验内容 编写函数catStr(char str1[],char str2[])用于进行两个字符串的连接,编写函数lenStr(char str[])用于统计一个字符串的长度,并在主函数中调用。 要求: 1、不允许用strcat()和strlen()字符处理库函数; 2、在主函数以直接初始化的方式输入两个字符串str1和str2.调用函数 strlen()计算并返回两个字符串的长度; 3、调用函数catstr()连接两个字符串(将str2连接在str1后面); 4、调用函数lenstr()计算并返回连接后字符串的长度; 5、在主函数中输入两个原始的字符串及几个字符串的长度,以及处理后字 符串及其长度。

3算法描述流程图

4源程序 #include #include void catStr(char str1[],char str2[]) { int i,j; for (i=0;str1[i]!='\0';i++); for(j=0;str2[j]!='\0';j++) str1[i+j]=str2[j]; str1[i+j]='\0'; } lenStr(char m[] ) {int i;

for (i=0;m[i]!='\0';i++); printf("%d",i); } void main() {char s1[50]="forever",s2[50]="more"; printf("s1=%s,s2=%s",s1,s2); printf("\ns1的长度:"); lenStr(s1); printf("\ns2的长度:"); lenStr(s2); catStr(s1,s2); printf("\n连接后的字符:"); printf("%s\n",s1); printf("连接后字符的长度:"); lenStr(s1); printf("\n"); } 5测试数据 s1=forever, s2=more 6运行结果 7出现问题及解决方法 在输入程序时,少写了半边引号,调试时发现存在错误,找到了错误并加以改正。无论什么事,细心都是必不可少的,认真是解决问题的关键。 8实验心得 通过本次实验,对于函数的定义和声明,数组以及循环语句有了进一步的认识,掌握了字符数组和字符串函数的使用,以及与数组有关的常用算法。此次实验不是调用strlen()和strcat()函数,而是通过自己设计程序来进行字符串的连接以及计量字符串的长度,由此我学会了如何去理清自己的思路来设计程序。

实验 6-3 数组

实验6-3 数组(三) 1 【实验目的】 (1)掌握字符数组的定义、赋值和输入输出的方法 (2)掌握字符数组和字符串函数的使用 (3)掌握数组的基本操作和排序算法 【实验要求】 (1)熟悉掌握字符数组的定义、赋值和输入输出方法 (2)掌握字符数组和字符串函数的使用 (3)掌握数组的增加元素和删除元素的操作 (4)掌握数组的排序算法(比较、选择和冒泡三种算法,要求至少会一种) 【实验环境】 (1) Microsoft XP操作系统 (2) Microsoft VC++ 6.0 【实验内容】 1、Palindromes_easy version https://www.wendangku.net/doc/4b18370074.html,/acmhome/problemdetail.do?&method=showdetail&id=1384 描述 “回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。请写一个程序判断读入的字符串是否是“回文”。

输入 输入包含多个测试实例,输入数据的第一行是一个正整数n,表示测试实例的个数,后面紧跟着是n个字符串,每个字符串的长度不超过30。 输出:如果一个字符串是回文串,则输出"yes",否则输出"no". 样例输入: 4 level abcde noon haha 样例输出: yes no yes no 2、分割整数https://www.wendangku.net/doc/4b18370074.html,/acmhome/problemdetail.do?&method=showdetail&id=1173 描述:从键盘输入一个长正整数(不超过10位),从高位开始逐位分割并输出。 输入:正整数n,不含前导零。 输出:分割的整数序列,各整数之间用空格格开。注意,最后一个数字后面没有空格! 样例输入:654321 样例输出:6 5 4 3 2 1

C语言程序设计实验答案数组、指针与字符串

实验06 数组、指针与字符串(4学时) (第6章数组、指针与字符串) 一、实验目的 二、实验任务 6_1(习题6-25)编写并测试3×3矩阵转置函数,使用数组保存3×3矩阵。 6_2(习题6-26)使用动态内存分配生成动态数组来重新完成上题(n阶方阵),使用指针实现函数的功能。 6_3 编程实现两字符串的连接。要求使用字符数组保存字符串,不要使用系统函数。 6_4 使用string类声明字符串对象,重新实现上一小题。 6_5(习题6-27)声明一个Employee类。 其中包括姓名、街道地址、城市和邮编等属性,以及change_name()和display()等函数。display()显示姓名、街道地址、城市和邮编等属性,change_name()改变对象的姓名属性,实现并测试这个类。 6_6(习题6-27)声明包含5个元素的对象数组,每个元素都是Employee 类型的对象。 6_7 修改实验4中的people(人员)类。 具有的属性如下:姓名char name[11]、编号char number[7]、性别char sex[3]、生日birthday、身份证号char id[16]。其中“出生日期”声明为一个“日期”类内嵌子对象。 用成员函数实现对人员信息的录入和显示。 要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数、聚集。 在测试程序中声明people类的对象数组,录入数据并显示。

三、实验步骤 1.(编程,习题6-25)编写矩阵转置函数,输入参数为3×3整型数组。 使用循环语句实现矩阵元素的行列对调,注意在循环语句中究竟需要对哪些元素进行操作,编写main()函数实现输入输出。程序名:lab6_1.cpp。 参考运行结果: ★程序及运行结果: //lab6_1.cpp #include using namespace std; void move(int matrix[][3]){ int temp; for(int i=0;i<3;i++) for(int j=0;j>mat[i][j]; } cout<<"\n输入的3×3矩阵为:"<

实验六 一维数组实验报告

*** 软件类实验报告 课程名称:C语言程序设计学号: 姓名: 班级: 指导教师: 开课学期: 学院: ***教务处

⑷一维数组排序。 四、实验过程及内容:(运行结果请抓图到对应题目的下方) 1. 先分析以下程序,写出运行结果,再上机检验。 2.程序填空题。下面程序的功能是9个评委给某个参赛选手打分,去掉一个最高分和一个最低分,求该参赛选手的平均分。填空完成程序。

实验结果: 3. 程序填空题。有数列1,1,2,4,7,13,24…,该数列的规律是从第4项起,每项是它的前三项之和。下列程序的功能是将该数列的前30项存放在一维数组中,输出时每行输出5个数。填空完成程序。 实验结果: 4. 程序改错题。下面程序的功能是将数组中的数按从大到小排序后输出。改正程序中的错误。 实验结果: 5. 程序改错题。某公司从用公用电话传递数据,数据是四位的整数,在传递过程中需要加密,加密规则为每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。改正程序中的错误。

实验结果: 6. 小楚参加了一个研究生考试培训班,共30次课,由于路途较远,每次都是打车去上课,来回的车费分别存储在数组a和b中,其中-1表示未去上课。 编程计算小楚参加培训班共打车花费多少钱?(要求保留1位小数,用循环实现) 输出结果的形式为: s=1234.5 a数组和b数组定义如下: double a[30]={31.0,32.0,30.3,32.8,30.5,30.6,31.0,32.8,-1,31.8,31.9,31.5,32.3,32.3,31.8,32.5 ,31.5,30.3,30.4,32.5,30.2,30.2,30.7,32.1,32.1,31.4,31.9,31.9,-1,30.5}; double b[30]={30.2,30.2,30.3,31.6,32.7,31.5,30.4,32.4,-1,31.0,31.8,32.1,31.6,31.4,32.4,32.1 , 32.5,32.3,32.5,31.4,31.2,30.3,32.3,30.7,31.3,30.2,31.1,30.5,-1,31.9}; 五、实验小结

实验六+数组程序设计

实验六数组程序设计 【实验目的】 1、掌握使用一维数组编程方法 2、掌握使用字符数组处理字符串的方法 2、了解二维数组 【实验性质】验证性 【实验要求】 1、认真阅读本次实验的目的,了解本次实验要求掌握的内容 2、在程序改错题旁,将程序中存在的错误修改过来 3、将编程题的代码在预习报告中写出来 4、在实验时,将实验要求的基本题(程序改错和编程题)根据预习报告中编写的代码, 在VC环境中编写出来 5、在VC中将编写的程序编译、调试,能正确运行结果 6、将正确程序文件(以自己姓名拼音_题号命名,如:zhangsan_1_2)上传至网络硬 盘,上传密码:物理1班为:wuliyiban ;物理二班为:wulierban 。 7、争取完成选作题 【实验内容】 1、程序改错 1) 下面程序的功能,是从键盘输入一个数组(数组长度为10),查找数组中正数的 个数。源代码如下,程序中存在错误,请将其改正写在旁边。 #include "stdio.h" main(){ int a(10);/*定义数组*/ int count,i;/* i循环变量 count 正数个数*/ for(i=0;i<=10;i++){/*循环输入*/ scanf("%d",a[i]); } count=1; for(i=0;i<=10;i++){/*查找正数*/ if(a(i)>0) count++; } printf("数组中正数有:%d个",count); } 2、编程题

1) 从键盘输入一个字符串,将其中的大写字母变小写字母,小写字母变大写字母,并输出 。 【要求】 (1)用字符数组表示存储字符串(字符串最大为100)。 (2)使用scanf 函数逐个输入字符保存在字符数组中 (3)使用printf 函数逐个输出字符数组中的字符 2) 输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。 【要求】 (1)数组长度定义为10 (2)输出数组时每个元素占8个宽度,每行5个 3) 编程序按下列公式计算s 的值(其中x 1、x 2、…、x n 由键盘输入): 201)(x x s n i i -=∑= (其中x 0是x 1、x 2、…、x n 的平均值) 【要求】 (1)用数组保存x 1、x 2、…、x n 的值。 (2)n 的值从键盘输入 3 选作题 1)求从一个字符串中删除所有指定字符的其余字符串。如字符串为“abcaca ”,删除字符“a ”后,为“bcc ”。 【编程点拨】 (1)使用字符数组保存字符串,从字符串数组的第一个元素开始遍历 (2)如果当前的元素与需要删除的元素相等,则删除。 (3)删除是指将该元素前移到需要拷贝的位置

实验6数组

实验6 数组 一、实验目的: 1、理解数组的作用、特点; 2、掌握一维数组、二维的定义、引用、初始化,能够与循环结合实现批量数据处理(如输入、输出,比较大小,交换等); 3、熟悉打擂台、排序、查找等典型算法。 4、理解数组名作函数参数时,实参向形参传递的是数组首地址,可以利用此特性在函数中修改数组元素的值,从而达到改变实参数组的目的。 二、实验内容 1、(基础题)有一个数列,它的第一项为1,第二项为2,第三项为3,以后每一项都等于它的前三项之和。使用一维数组编程实现功能:计算该数列的前20项并赋值给数组,然后以逆序方式输出,每一行5个数据。如下图所示: 2、(基础题)编程计算数组各元素的平方和,要求如下: (1)void array_input(int array[], int n)的功能是:输入整型数组array 的各元素值,参数n是数组元素的个数; (2)int square_sum(int array[], int n)的功能是:对整型数组array的各元素的平方求和,参数n是数组元素的个数; (3)主函数的功能:定义一个是长度为6的整型数组,通过调用array_input()输入各元素的值,再调用square_sum()得到各元素平方和,最后输出结果; (4)主函数在前,上述两个函数在后面定义。程序运行如下图所示:

3、(基础题)编写程序实现如下功能:先定义两个长度为31的字符数组str1、str2,然后输入两个字符串保存到str1、str2中;现调用字符串处理函数分别进行以下处理: (1)分别计算两个字符串的长度并输出; (2)输出两个字符串中的较大值; (3)再定义一个字符数组str,将str1、str2两个字符串连接存至str中并输出。如下图所示: 程序代码:

实验七 数组程序设计

实验七数组程序设计(4学时) 一、实验方式:一人一机 二、实验目的: 1、掌握数组的定义、赋值和输入输出的方法。 2、学习用数组实现相关的算法(特别是排序算法)。 3、掌握C语言中字符数组和字符串处理函数的使用。 三、实验内容: 说明:前四题为必做题目,后两题为选做题目。 1、下列程序的功能是:输入10个整数,按每行3个数输出这些整数,最后 输出10个整数的平均值。程序中有几处错误,试找出它们后加以修改,并上机验证修改结果。 #include void main( ) { int i,n,a[10],avg; for(i=0;i void main( ) { int i,a[10]; float avg=0; printf("欢迎请输入10个整数:\n"); for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=0;i<10;i++) { if(i%3==0) printf("\n"); printf("%d ",a[i]); } for(i=0;i<10;i++) avg+=a[i];avg=avg/10; printf("\navg=%f\n",avg);

} 实验调试记录:--------------------Configuration: 71ext - Win32 Debug-------------------- Compiling... 71ext.c Linking... 71ext.exe - 0 error(s), 0 warning(s) 参考答案: 2、写一个函数,对输入的10个整数按从小到大的顺序排序(升序,用冒泡 排序实现)。(实验指导书P147) 实验步骤与过程: /*ex7_1.cpp*/ #include void sort1(int s[],int n) { int i,j; int t; for(i=0;i<10;i++) for(j=0;j<10;j++) if(s[j]

实验6数组——参考答案

实验6 数组 一、一维数组实验 2. 编程:输入长度为10的整型数组并输出;然后将其逆序存放后再输出。例如: Input 10 number: 0 1 2 3 4 5 6 7 8 9 After reversed: 9 8 7 6 5 4 3 2 1 0 #include<> void main() { int i, j, a[10], t; printf("Input 10 number: "); for(i=0; i<10; i++) /*读入数据*/ scanf("%d", &a[i]); printf("origin data: "); for(i=0; i<10; i++) /*输出原始数据*/ printf("%d ", a[i]); printf("\n"); for(i=0,j=9; i

#include <> void main() { int i, n , max, min, a[10], sum; float average; printf("Input n (1 a[max]) max= i; if(a[i] < a[min]) min= i; } printf("max=%-5d index=%d\n", a[max], max); printf("min=%-5d index=%d\n", a[min], min); printf("average=%.2f\n", average); } else printf("数据超出范围"); } 4. 编程:青年歌手参加歌曲大奖赛,有10个评委对她(他)进行打分,试编程求这位选手的平均得分并输出(去掉一个最高分和一个最低分)。 #include <> void main() { int i, max, min; float a[10], ave; printf("请输入10个评委的打分:"); for(i=0, ave=0; i<10; i++) /*输入分数并求累加和*/ {

C语言程序设计实验4 数组 周信东

实验4 数组 姓名:XXX 学号:XXX实验日期:XXX 1.实验目的和要求 (1)掌握一维数组与二维数组的定义、使用及初始化方法。 (2)学习数组作为函数参数的用法。 (3)掌握字符数组和字符串函数的使用方法。 (4)掌握与数组有关的常用排序算法,进一步理解模块化程序设计的方法。(5)掌握字符、字符串的输入/输出方法。 (6)掌握字符数组的使用。 (7)学会使用字符串的指针和指向字符串的指针变量。 2.实验内容:实验指导书中的实验六、实验七 3.实验步骤 实验六数组部分: 6-1:我使用的算法: 先使投票初始化为0 int vote[6]; int i,number; for (i=1;i<=5;++i) vote[i]=0; 之后用一个循环进行投票进行叠加 printf ("Enter your number\n") ; for (i=1; i<=20;++i) { scanf (" %d",&number) ; if (!number) break; ++vote[number]; } printf (" \n\nResalt of vote\n") ; printf (" --------------------------\n") ; for (i=1;i<=5;++i) printf (" %4d %d\n",i,vote[i]) 程序的运行测试结果如下图所示(考虑各种情况下的运行结果):

6-2:该程序的功能是: 用循环,先把数组的第一个元素暂存起来,为了实现数组的前移,把j赋给j-1;再将暂存的第一个元素赋给最后一个元素;再用循环输出数组。 程序运行结果如下图所示: 6-3 :该程序的功能是: 对a数组中n种商品价格进行分段统计,商品各段价格的数目存放到b数组中。 程序运行结果如下图所示: 6-4.:我使用的算法为: 先对11个元素进行定义,在对10个元素进行排序,之后读入一个待插入的数,与排好的

实验6 数组一

实验6 数组(一) 【实验目的】 (1) 掌握一维数组和二维数组的定义、赋值和输入输出的方法。 (2) 掌握与数组有关的算法。 【实验内容】 1. 程序分析 (1) 分析下面的程序,描述程序的功能并给出程序的运行结果。 #include #define N 7 int main() { int arr[N]={0,2,4,6,8,10,12},i,t; for(i=0;i int main() { int arr[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}}; int i,sum=0; for(i=0;i<4;i++) sum+=arr[i][i]; printf("%d\n",sum); return 0; } 2. 程序改错 (1) 以下程序用于求一个数组中的最大值和最小值。程序中有几处错误,试找出它们后加以修改,并上机验证修改结果。 #include int main() { int i,N=10; double arr[N],max,min; for(i=0;i

for(i=1;imax) max=arr[i]; else min=arr[i]; printf("max=%f,min=%f\n",max,min); return 0; } 3. 程序设计 (1) 学校举办演讲比赛,n个学生参加比赛,8个评委打分。参赛选手的最终得分计算方法为:去除一个最高分和一个最低分后所得的平均分。 【要求】 - 求每位选手的比赛成绩。 - 对比赛结果进行排序 (2) 在下面的5×5魔方矩阵中,每一行、每一列、每一对角线上的元素之和都是相等的,试编写程序将这些魔方矩阵中的元素读到一个二维整型数组中,然后,检验其是否为魔方矩阵,并将其按如下格式显示到屏幕上。 17241815 23571416 46132022 101219213 11182529

数组程序设计

1.1 实验学时:4学时 1.2 实验目的 1. 掌握一维数组、二维数组的概念及元素的各种表示方法; 2. 正确掌握数组输入输出等的基本操作; 3. 掌握函数访问数组的方法; 4. 字符串的处理方法; 5. 掌握数组中的一些常用算法,并能解决实际问题。 1.3 必做实验 【题目4-1】运用所学数组知识实现学生成绩的录入、评估、统计、排序及输出,要求如下: (1)从键盘输入6个同学计算机课程期末考试成绩存放在数组中 算法分析: 1、定义一个能够存放6个整型数据的数组 int score[6]; 2、使用循环结构为数组元素赋值 3、编写循环体,注意数据输入格式 (2)统计出平均分、最高分,以及统计超过平均分的人数 算法分析: 1、分析编程所需定义的变量,并未变量赋初值:总分int sum=0,平均分intave=0,最高分int max=0,以及超过平均分人数的变量int count=0 2、使用循环结构访问数组元素: score[0]~score[5] 3、在访问数组元素的过程中,完成总分、最高分的统计,在访问完所有数组数据后,计算平均分 4、再次访问数组,参照计算所得平均成绩统计超过平均分的人数 5、输出结果 (3)对学生成绩进行从高到低的排序(冒泡法),并把排序后的成绩输出。 算法分析: 冒泡法实现n个数据从小到大排序,结合算法对学生成绩进行从高到低的排序 输出排序结果 流程框图: 【实验4-1】代码及运行结果:(1)确定内部循环次数 确定外部循环次数 判定数据是否需要交换

(2) (3)

【题目4-2】定义一个N行N列的二维整型数组,使数组左下三角元素中的值乘以n 。例如:若n的值为3, a数组中的值为 ? ? ? ? ? ? ? 6 5 4 8 3 2 7 9 1 则返回主程序后a数组中的值为 ? ? ? ? ? ? ? 18 15 12 8 9 6 7 9 3 算法分析: 1、定义N行N列的二维数组,并手动为数组元素赋值 注意:注意数组维数不能为变量,但可以用宏定义的方式来进行数组维数的定义,例如:在头文件前进行宏定义#define N 3,程序中定义二维数组 intnum[N][N]; 2、选择二维数组中的左下三角元素,并改变三角元素的值 3、以N行N列的形式输出二维数组,要求每输出N个数据,输出一个回车换行符 延伸扩展: 结合所学函数的知识,把改变左 函数实现。 【实验4-2】代码及运行结果:

实验6 数组和字符串

实验6 数组和字符串 【实验目的】 ①掌握一维数组和二维数组的基本操作(定义、初始化、输入、赋值、输出)。 ②掌握字符数组和字符串函数的使用。 ③掌握与数组有关的常用算法(排序、查找、数组元素的插入和删除)。 【实验6.1】从键盘输入10个整数存入数组a中,然后输出该数组各个元素,并求其中的最大值、最小值和平均值。 【提示】 (1) 通过循环输入10个整数并存入数组a.。 (2)以a[0]作为最大值、最小值及累加和的初始值,用数组的下标和循环相结合,求出 数组的最大值、最小值和平均值。 (3)输出数组各元素,并输出最大值、最小值和平均值。 注意:平均值是通过除法完成的,应选用适当的数据类型。 答案:#include void main() {int a[10],max,min,sum,i; float aver; for(i=0;i<10;i++) scanf("%d",&a[i]); printf("%d",a[i]); sum=0; for(i=0;i<10;i++) sum=sum+a[i]; aver=sum/10.0; max=a[0];min=a[0]; for(i=0;i<10;i++) { if(maxa[i]) min=a[i]; } printf("max=%d,min=%d,aver=%f",max,min,aver); } 【实验6.2】实行学分制,学生的平均绩点是衡量学生学习的重要依据。成绩等级与绩点的关系如下表所示:

平均绩点=∑∑?所学各课程的学分点绩所学各课程学分 编一程序利用两个一维数组分别输入某学生20门课程的学分xf[20]和对应成绩score[20],计算其平均绩点aver 。 【指导】本题是一个求数组元素累加和的问题。 (1)定义数组及相关的变量:20门课程的成绩用数组score[20]表示,20门课程的学分用数组xf[20]表示。 (2)输入20门课程的成绩及其对应学分保存在数组中。 (3)计算20门课程的学分之和sumxf ,并根据成绩的档次分别取不同的绩点计算所有课程的学分与绩点的乘积之和sumscore 。 (4)平均绩点aver=sumscore/sumxf 。 【参考程序】 #include void main() { float score[20],sumscore=0.0F,sumxf=0.0F,aver; int i,jd,xf[20]; for (i=0; i<20; i++) scanf("%f%d",&score[i],&xf[i]); for (i=0; i<20; i++) { sumxf=sumxf+xf[i]; //计算学分和 if (score[i]>=90) //由成绩确定绩点 jd=4; else if (score[i]>=80) jd=3; else if (score[i]>=70) jd=2; else if (score[i]>=60) jd=1; else jd=0; sumscore=sumscore+xf[i]*jd; //计算学分与绩点的乘积和 } aver=sumscore/sumxf; //计算平均绩点 printf("%.2f\n",aver); } 【实验6.3】请编写程序,它的功能是: 将M 行N 列的二维数组中的数据, 按列的顺序依次放到一维数组中。 例如, 二维数组中的数据为: 33 33 33 33 44 44 44 44 55 55 55 55 则一维数组中的内容应是:

实验六 数 组(二)

实验六数组(二) 一、实验目的 1.掌握一维数组和二维数组的定义、赋值和初始化的方法 2.掌握字符数组的使用 3.熟练掌握与数组相关的各种算法 二、实验任务 1.阅读、调试、运行程序,比较阅读的结果和运行的结果。 (1) #include void main() { char ch[7]={"12ab56"}; int i,s=0; for(i=0;ch[i]>='0'&&ch[i]<='9';i+=2) s=10*s+ch[i]-'0'; printf("%d\n",s); } (2) 运行下面程序时,输入ab c def #include #define N 6 void main() { char c[N]; int i=0; for( ;i void main() { int a[10]={1,2,2,3,4,3,4,5,1,5}; int n=0,i,j,c,k; for(i=0;i<10-n;i++) { c=a[i]; for(j=i+1;j<10-n;j++) if(a[j]==c) { for(k=j;k<10-n;k++) a[k]=a[k+1];

n++; } } for(i=0;i<(10-n);i++) printf("%d",a[i]); } (4) #include void main() { int i; char a[]="Time",b[]="Tom"; for(i=0;a[i]!='\0'&&b[i]!='\0';i++) if(a[i]==b[i]) if(a[i]>='a'&&a[i]<='z') printf("%c",a[i]-32); else printf("%c",a[i]+32); else printf("*"); } (5) #include #define LEN 4 void main() { int j,c; static char n[2][LEN+1]={"8980","9198"}; for(j=LEN-1;j>=0;j--) {c=n[0][j]+n[1][j]-2*'0'; n[0][j]=c%10+'0'; } for(j=0;j<=1;j++) puts(n[j]); } 2. 完善程序,并调试运行 (1) 以下程序的功能是删除一个字符串中的所有数字字符。#include "stdio.h" void delnum(char *s) {int i,j; for(i=0,j=0; (1) '\0' ;i++) if(s[i]<'0' (2) s[i]>'9') { (3) ;j++;} s[j]='\0'; }

实验七 二维数组程序设计

实验七二维数组程序设计 一、实验学时 2学时 二、实验目的 (一)掌握二维数组的定义、赋值及输入输出的方法; (二)掌握与二维数组有关的算法如查找、矩阵转置等; (三)掌握在程序设计中使用数组的方法。数组是非常重要的数据类型,循环中使用数组能更好地发挥循环的作用,有些问题不使用数组难以实现。 (四)掌握在VC++环境下上机调试二维数组程序的方法,并对结果进行分析。 三、预习要求 熟悉二维数组的定义、引用和相关算法(求最大值、最小值)的程序设计,同时要掌握在程序设计中利用双重循环来实现二维数组的输入和输出。 四、实验内容 (一)二维数组的初始化,即给二维数组的各个元素赋初值。下面的几个程序都能为数组元素赋值,请输入程序并运行,比较这些赋值方法有何异同。 1.在定义数组的同时对数组元素分行初始化。 /* c7-1.c */ /*二维数组的初始化(分行)*/ #include "stdio.h" void main( ) { int i,j,a[2][3]={{1,2,3},{4,5,6}}; for(i=0; i<2; i++) { for(j=0; j<3; j++) printf("%d ",a[i][j]); printf("\n"); } } 2.不分行的初始化。把{ }中的数据依次赋值给数组的各个元素。 /* c7-2.c */ /*二维数组的初始化(不分行)*/ #include "stdio.h" void main( ) { int i,j,a[2][3]={1,2,3,4,5,6}; for(i=0;i<2;i++) { for(j=0;j<3;j++) printf("%d ",a[i][j]); printf("\n"); } } 3.为部分数组元素初始化。

实验6-1-数组

实验6-1 数组(一) 题目后面超级链接,可网上刷题【需上外网】在线提交链接只在实验开放时段有效【需 上外网】。实验系数:1.3 【实验目的】 掌握一维数组的定义、赋值和输入输出的方法 掌握遍历数组的方法 掌握遍历数组,查找最值、累加求和、求平均值的方法 【实验要求】 熟练掌握一维数组的定义、赋值和输入输出的方法 熟练掌握正序、逆序遍历数组的方法 掌握遍历数组,查找最值、累加求和、求平均值的方法 【实验环境】 (1) Microsoft XP操作系统 (2) Microsoft VC++ 6.0 【实验内容】 1、输出奇数https://www.wendangku.net/doc/4b18370074.html,/JudgeOnline/problem.php?id=2001 题目描述:输入10个整数,将其中的奇数输出 输入:10个整数 输出:输入整数中的奇数(中间用空格分开)

样例输入:87 67 3 29 88 506 98 55 102 32 样例输出:87 67 3 29 55 2、数组逆序https://www.wendangku.net/doc/4b18370074.html,/acmhome/problemdetail.do?&method=showdetail&id=1176 题目描述:输入10个整数存入一维数组,再按逆序重新存放后再输出。 输入:输入包括一行。10个以空格格开的整数 输出:逆序的10个整数,整数以空格格开 样例输入:1 3 5 9 7 6 8 2 4 0 样例输出:0 4 2 8 6 7 9 5 3 1 3、大于平均值的个数https://www.wendangku.net/doc/4b18370074.html,/JudgeOnline/problem.php?id=1434 题目描述:输入10个数,求它们的平均值,并输出大于平均值的数据的个数。 输入:10个数 输出:大于平均数的个数 样例输入:1 2 3 4 5 6 7 8 9 10 样例输出:5 4、10米跳水计分系统https://www.wendangku.net/doc/4b18370074.html,/JudgeOnline/problem.php?id=1969 题目描述: 在十米跳台比赛中,有10个评委同时为参赛选手打分,分数从1到10分不等。选手最后的得分为:去掉一个最高分,去掉一个最低分,然后对剩余的8个分数求平均值(算数均数)。

实验报告-数组程序设计(4学时)

西南石油大学实验报告 一、实验目的: (1)掌握静态数组的定义 (2)掌握数组的初始化和数组的赋值 (3)掌握控件数组的使用 (4)掌握使用数组的常用算法 二、实验内容: 【实验1】已知10个数为53、67、42、89、65、8、98、67、54、36,编写程序,使用array函数存储这10个数并求和。 (1)编写代码 Private Sub Form_Click() Dim a As Variant a = Array(53, 67, 42, 89, 65, 8, 98, 67, 54, 36) Sum = 0 For i = 0 To UBound(a) Sum = Sum + a(i) Next i For i = 0 To UBound(a) Print a(i); ""; Next i Print Print "sum="; Sum Print End Sub (2)运行效果

【实验2】编写程序,定义二维静态数组,分别计算下列矩阵两条对角线元素之和。 156728147564285633?????????? (1)编写代码 Option Base 1 Private Sub Form_click() Dim a(3, 3) As Integer, sum1 As Integer, sum2 As Integer For i = 1 To 3 For j = 1 To 3 a(i, j) = Val(InputBox("输入数据:")) Next j Next i Print "数组各元素为:" For i = 1 To 3 For j = 1 To 3 Print Format(a(i, j), "@@@@@"); Next j Print Next i sum1 = 0: sum2 = 0 For i = 1 To 3 sum1 = sum1 + a(i, i) sum2 = sum2 + a(i, 4 - i) Next i Print "主对角线之和为: "; sum1

实验六 数组程序设计(2)

实验六数组程序设计(2) 【本次实验目的】 1.掌握字符数组的定义、初始化、输入输出。 2. 常用字符串函数:puts() gets() strcpy() strcat() strcmp() strlen() strupr() strlwr() 要求:按照要求,在vc环境下调试运行程序,直到得到正确的结果,将填好、改好或编好的程序代码写在作业本上。 【实验内容】 一、程序填空:注意:不要改动main函数, 不得增行或删行, 也不得更改程序的结构! (1)以下程序的功能是:求3个字符串(每串不超过20个字符)中的最大者。补充完善程序,以实现其功能。 #include #include #define N 3 void main() { char string[20], str[N][20]; int i, k; for (i=0;i

相关文档