C语言实验报告 数组

时间:2024.4.20

C语言实验报告

实验七  数组

1.  实验目的

(1)    熟练掌握一维数组、二维数组的定义、初始化和输入/输出方法;

(2)    熟练掌握字符数组和字符串函数的使用;

(3)    掌握与数组有关的常用算法(如查找、排序等)。

2.  实验指导

(1)  对任意一个一维型数组,从中找出数组元素的最大值和最小值并输出。

要求:

①  数组有十个元素;

②  使用scanf函数实现数组元素的输入前给出必要的提示;

③  输出时,首先输出数组的十个元素,然后输出其最大值和最小值。

分析指导:

①  算法分析:首先定义一个数组,通过循环从键盘输入十个数组元素的值,再通过另一个循环判断数组元素的最大只和最小值;

②  根据分析情况编写程序:

#include<stdio.h>

main()

{

int a[10],i,max,min;

printf("please input ten integers:");

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

{

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

}

max=a[0];

min=a[0];

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

{

     if(a[i]>max)

        max=a[i];

     if(a[i]<min)

        min=a[i];

}

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

{

     printf("a[%d]=%d\n",i,a[i]);

}

printf("The maximum value is %d,and the minimum value is %d\n",max,min);

}

运行程序,输入十个整数,如:

21 37 6 17 9 12 89 76 35 59

运行结果如下:

(2)  编写函数cmpStr(char s1[],char s2[])比较两个字符串s1和 s2的大小。如果s1>s2,返回一个正数;s1=s2,返回0;s1<s2,返回一个负数,在主函数中调用该函数完成字符串的比较操作,并输出返回的值。

要求:

①  不允许使用strcmp()函数;

②  用gets()函数在主函数中输入两个字符串;

③  实现触摸屏受托人()函数,返回的正数或负数的绝对值应该是进行比较的两个字符传中相应字符的ASCII码的差值。

分析指导:

①  算法分析:两个字符串从第一个字符开始一一对应进行比较,直到不相等的那个字符,从而求得它们的ASCII码的差值。比如,‘A’与‘C’相比,由于‘A’<‘C’,应输出负数,由于‘A’与‘C’的ASCII码的差值为2,因此,应输出“-2”。同理,“And”和“Aid”比较,根据第二个字符比较结果,‘n’比‘I’大5,因此应输出‘5’;

②  根据分析情况编写程序:

#include<stdio.h>

int cmpstr(char s1[],char s2[])

{

    int i,diff;

    i=0;

    while((s1[i]==s2[i])&&(s1[i]!='\0'))i++;

    if(s1[i]=='\0'&&s2[i]=='\0')

       diff=0;

    else

       diff=s1[i]-s2[i];

    return diff;

}

void main()

{

    int z;

    char s1[100],s2[100];

    printf("input the first string:");

    //输入字符串1

    gets (s1);

    printf("input the second string:");

    //输入字符串2

    gets(s2);

    z=cmpstr(s1,s2);

    //输出比较结果

    printf("the difference between two strings is %d\n",z);

}

查看运行结果如下:

重新输入两个字符串meet,mood运行结果如下:

(3)  再给定的字符串中查找指定的字符。

要求:

①  字符串采用直接初始化的方式处理;

②  通过scanf函数读入一个任意字符;

③  在字符串中查找该字符,如果存在该字符,输出该字符在字符串中的一次出现的位置,如果再给定的字符串中不存在该字符,则给出相应的说明信息。

#include<stdio.h>

void main()

{

       int i;

       char ch;

       char s[]=" program";

       printf(" 输入一个英文字母: ");

       scanf("%c",&ch);

       for (i=0;s[i]!='\0';i++)

       {

              if (s[i]==ch)

              break;

       }

       if (i<7)

              printf("s[%d]=%c\n",i,ch);

       else

              printf("No founded\n");

}

输入一个英文字母O运行程序如下:

再次输入一个英文字母w运行程序如下:

(4)首先输入一个大于二且小于十的整数n,然后定义一个二维整型数组(n*n),初始化该数组,讲述组中最大元素所在的行和最小元素所在的行对调。

要求:

①    n*n数组元素的值由scanf函数从键盘输入(假定最大值最小值不在同一行上),然后输出该数组;

②    查找最大值最小值所在的行,将数组中最大元素所在的行和最小元素所在的行对调,并输出对调后的数组;

③    为直观起见,数组按n行n列的方式输出;

④    修改程序,对最大值与最小值可能出现在一行种的情况进行处理。

#include<stdio.h>

main()

{

       long matrix[9][9],min,max,temp;

       int i,j,n,nMax=0,nMin=0;

       printf("\nplease inpute n of matrix:\n");

       scanf("%d",&n);

       printf("\nplease inpute elements of matrix(%d*%d):\n",n,n);

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

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

                     scanf("%ld",&matrix[i][j]);

       min=max=matrix[0][0];

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

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

              {

                     if(matrix[i][j]>max)

                     {

                            max=matrix[i][j];

                            nMax=i;

                     }

                     else if(matrix[i][j]<min)

                     {

                            min=matrix[i][j];

                            nMin=j;

                     }

              }

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

       {

              temp=matrix[nMax][j];

              matrix[nMax][j]=matrix[nMin][j];

              matrix[nMin][j]=temp;

       }

       printf("\nResult matrix:\n");

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

       {

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

                 printf("%5ld",matrix[i][j]);

              printf("\n");

       }

}

输入一个数4,输入一个4*4的数组

1        3  6  7 

2        4  5  8

1        3  5  7

2        6  9  7

运行程序如下:

再次输入一个数字3,输入一个3*3的数组

1        2  3

2        4  5

3        7  8

运行程序如下:

3 实验结论

    通过本次实验熟练的掌握一维数组、二维数组的定义、初始化和输入/输出方法以及字符数组和字符串函数的使用,还有就是掌握与数组有关的常用算法


第二篇:C语言实验报告本(数组函数)


《C语言程序设计》

 实验报告

 2009~20##学年第二学期     

   计算机教学实验中心

    2010 5

《C语言程序设计》实 验 报 告 ( 1 )

学号:                  姓名:              班级:                成绩:

                                                                 任课教师签名:  

《C语言程序设计》实 验 报 告 ( 2 )

学号:                  姓名:              班级:                成绩:

                                                              任课教师签名:       

更多相关推荐:
C语言数组实验报告

C语言数组实验报告,内容附图。

C语言实验报告 数组

学生实验报告学院软件与通信工程学院课程名称C语言与程序设计专业班级通信121姓名学号学生实验报告4一实验综述1实验目的及要求1一维数组和二维数组的定义方法以及其元素的访问形式2用字符数组来处理字符串及字符串处理...

C语言数组实验报告

北京联合大学信息学院程序设计基础课程调研研究报告题目姓名学号专业计算机科学与技术编制时间20xx528版本指导教师北京联合大学信息学院编制数组实验程序设计报告20xx年5月28日班号姓名学号第一章实验情况概述本...

C语言试验报告-数组函数实验

学生实验报告实验课名称数组函数综合实验实验项目名称数组函数综合实验专业名称测控技术与仪器班学级20xx240801号20xx24080126学生姓名黄小龙教师姓名武雅丽月实验日期20xx年4月27日实验室名称数...

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

C语言程序设计实验报告数组1实验目的1熟练掌握一维数组二维数组的定义初始化和输入输出方法2熟练掌握字符数组和字符串函数的使用3掌握与数组有关的常用算法查找排序等2实验内容编写函数catStrcharstr1ch...

C语言实验报告数组

高级语言程序设计实验报告实验序号4实验项目名称数组题目3题目5附加2

C语言实验报告数组

实验报告实验课程名称高级C语言程序设计实验项目名称数组年级09级专业数学学生姓名李军学号0907010170理学院实验时间20xx年4月22日学生实验室守则一按教学安排准时到实验室上实验课不得迟到早退和旷课二进...

c语言实验7数组实验报告

实验报告课程名称程序设计实验项目名称数组班级与班级代码14级计算机科学与技术1班实验室名称或课室SS1332专业计算机科学与技术任课教师学号姓名实验日期20xx年月日广东商学院教务处制指导教师评分后学年论文交院...

C语言:数组的应用实验报告

课程名称结构化程序设计与C语言开课实验室年月日一实验目的用C语言编写和调试数组的程序包括一维数组和二维数组从而对数组的程序设计有比较深入的了解二内容及结果1程序二选择排序法1题目用选择法对10个整数排序2代码i...

C语言实验五实验报告——数组

一实验项目名称数组二实验目的1掌握数组的基本概念包括数组的定义数组的类型数组的初始化数组的赋值数组元素下标的范围数组元素的正确以及引用数组元素的输入输出2掌握字符数组与字符串的使用方法理解字符数组与其它数组的区...

C语言报告之数组

一实验内容1输入一组实数按要求录入数组arr中采用选择法对其排序任意输入一数直接在arr数组中将其按顺序插入相应位置不许使用其他数组来完成includeltstdiohgtincludeltstdlibhgtd...

C语言实验报告本(数组函数)

C语言程序设计实验报告20xx20xx学年第二学期专业班级姓名学号任课教师计算机教学实验中心20xx年5月C语言程序设计实验报告1学号姓名班级成绩任课教师签名C语言程序设计实验报告2学号姓名班级成绩任课教师签名

c语言数组实验报告(37篇)