zoukankan      html  css  js  c++  java
  • C语言程序设计数组实验实验报告

    C程序设计实验报告

    实验项目:数组实验

    姓名:胡俊 实验地点:家 实验时间2020.5.7

    一、实验目的与要求

    (1)掌握一维和多维数组的定义和数组元素的引用方法。
    (2)了解一维和多维数组初始化的方法。
    (3)学习一维和多维数组的基本算法。
    (4)掌握字符数组的定义、初始化方法及其元素的引用方法。
    (5)掌握C语言提供的对字符串进行处理的基本库函数。

    二、实验内容

    1、实验练习:7.3.1-1

    1、问题的简单描述:编写程序,利用随机函数产生10个整数,并按升序排列输出。其算法流程图如图7-1所示。

    2、流程图:

    3、实验代码:

    
    #include "stdio.h"
    #include "stdlib.h"
    #include "time.h"
    void sort1(int s[ ],int n)
    {
    	int i,j;
    	int temp;
    	for(i=0;i<n-1;i++)
    	for(j=9;j>=i+1;j--)
    	if (s[j]<s[j-1])
    	{
    		temp=s[j];s[j]=s[j-1];s[j-1]=temp;
    	}
    }
    main()
    {
    	int i,a[10];
    	srand((unsigned)time(0));
    	printf("随机产生10个整数:
    ");
    	for(i=0;i<10;i++)
    	a[i]=rand()%100;
    	for(i=0;i<10;i++)
    	printf("%d ",a[i]);
    	printf("
     ");
    	sort1(a,10);
    	printf("排序后的结果:
    ");
    	for(i=0;i<10;i++)
    	printf("%d ",a[i]);
    }
    

    4、问题分析:个别printf函数中 和%d后要加空格,没加的话会导致数与数堆积在一起。

    2、实验练习:7.3.1-2

    1、问题的简单描述:与7.3.1-1相同只不过运行过程不同,排序方法不同。

    2、实验代码:

    #include "stdio.h"
    #include "stdlib.h"
    #include "time.h"
    void sort2(int s[ ],int n)
    {
    	int i,j,k;
    	int temp;
    	for(i=0;i<n-1;i++)
    	{
    		k=i;j=i+1;
    		for(j;j<=n-1;j++)
    		if(s[j]<s[k])k=j;
    		if(k!=i)
    		{
    			temp=s[k];s[k]=s[i];s[i]=temp;
    		}
    	}
    }
    main()
    {
    	int i,a[10];
    	srand((unsigned)time(0));
    	printf("随机产生10个整数:
    ");
    	for(i=0;i<10;i++)
    	a[i]=rand()%100;
    	for(i=0;i<10;i++)
    	printf("%d ",a[i]);
    	printf("
    ");
    	sort2(a,10);
    	printf("排序后的结果:
    ");
    	for(i=0;i<10;i++)
    	printf("%d ",a[i]);
    }
    

    3、问题分析:无

    3、实验练习:7.3.2改进

    1、问题的简单描述:编写程序,从键盘输入行数,输出指定行数的杨辉三角形。其算法流程图如图7-3所示。

    2、流程图:

    3、实验代码:

    #include"stdio.h"
    main()
    {
    	int a[50][50],i,j,n;
    	printf("请输入杨辉三角的行数:");
    	scanf("%d",&n);
    	for(i=1;i<=n;i++)
    	{
    		a[i][i]=1;a[i][1]=1;}
    		for(i=3;i<=n;i++)
    	{
    	for(j=2;j<=i-1;j++)
    	a[i][j]=a[i-1][j-1]+a[i-1][j];
    	}
    	for(i=0;i<n;i++)
    	{
    		for(j=1;j<=n-i;j++)
    		{
    			printf("  ");
    		}
    		for(j=1;j<=i+1;j++)
    		{
    			printf("%3d ",a[i+1][j]);
    		}
    		printf("
    ");
    	}
    }
    

    4、问题分析:无

    4、实验练习:7.3.2-2

    1、问题的简单描述:编写程序,从键盘分别输人年、月、日,计算出该天是这年中的第几天。其算法流程图如图7-4所示。

    2、流程图:

    3、实验代码:

       #include "stdio.h"
    int day_tab[2][13]={
    {0,31,28,31,30,31,30,31,31,30,31,30,31},
    {0,31,29,31,30,31,30,31,31,30,31,30,31}};
    int day_year(int year,int month,int day)
    {
    int i,j,s=0;
    if((year%400==0)||((year%4==0)&&(year%100!=0)))
    i=1;
    else
    i=0;
    for(j=1;j<month;j++)
    s=s+day_tab[i][j];
    s=s+day;
    return s;
    }
    main()
    {
    int y,m,d;
    printf("Input year_month_day:
    ");
    scanf("%d %d %d",&y,&m,&d);
    printf("是这年的第%d天
    ",day_year(y,m,d));
    }
    

    4、问题分析:无

    5、实验练习:7.3.3

    1、问题的简单描述:编写程序,从键盘输入一个字符串,判断其是否是回文数。算法流程图如图7-5所示。

    2、流程图:

    3、实验代码:

    #include"stdio.h"
    #include"string.h"
    #define N 40
    main()
    {
    	char str[N],ch='Y';
    	int i;
    	int len;
    	printf("Input a string:");
    	scanf("%s",&str);
    	len=strlen(str);
    	for(i=0;i<=len/2;i++)
    	if(str[i]!=str[len-1-i])
    	{
    		ch='N';
    		break;
    	}
    	if(ch=='Y')
    	printf("%s是一个回文数
    ",str);
    	else
    	printf("%s不是一个回文数
    ",str);
    }
    

    4、问题分析:无

    四、实验小结(剖析个人得失)

    简单的使用了C语言的数组感觉只要掌握了数组的结构,就能够运用数组了。

  • 相关阅读:
    BZOJ3752 : Hack
    XIV Open Cup named after E.V. Pankratiev. GP of SPb
    XIII Open Cup named after E.V. Pankratiev. GP of Ukraine
    BZOJ2087 : [Poi2010]Sheep
    BZOJ2080 : [Poi2010]Railway
    BZOJ2082 : [Poi2010]Divine divisor
    Moscow Pre-Finals Workshop 2016. National Taiwan U Selection
    XIII Open Cup named after E.V. Pankratiev. GP of Asia and South Caucasus
    XIII Open Cup named after E.V. Pankratiev. GP of Azov Sea
    XIII Open Cup named after E.V. Pankratiev. GP of SPb
  • 原文地址:https://www.cnblogs.com/mzbhq/p/12843717.html
Copyright © 2011-2022 走看看