7

C语言数组实验报告

一、实验目的与要求

1、掌握一维数组和多维数组的定义和数组元素的使用方法

2、了解一维和多维数组的初始化的方法

3、学习一维和多维数组的基本方法

4、掌握c语言提供的对字符串进行处理的基本函数库

5、掌握字符数组的定义、初始化方法及其元素的引用方法

二、实验内容

实验一

代码

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

	printf("\n");
	sort1(a,10);
	printf("排列后的数列为:");
	for(j=0;j<10;j++)
	printf("%d ",a[j]);
	return 0;
}

问题分析:注意数组函数的调用

实验二

代码

#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;
		for(j=i;j<n;j++)
		{
			if(s[k]>s[j])
			k=j;
			if(k!=i)
			{
				temp=s[k];
				s[k]=s[i];
				s[i]=temp;
			}
		}
	}
 } 
 main()
 {
 	int i,a[10];
 	srand(time(0));
 	printf("随机产生的10个整数为:");
 	for(i=0;i<10;i++)
 	{
 		a[i]=rand()%100;
 		printf("%d ",a[i]);
	 }
	 printf("\n");
	 sort2(a,10);
	 printf("排序后的数列为 :");
	 for(i=0;i<10;i++)
	 printf("%d ",a[i]);
 }

问题分析:了解选择排序的原理

实验三

代码

#include<stdio.h>
main()
{
	int a[50][50];
	int i,j,n;
	printf("输入行数n:");
	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<=n-1;j++)
		{
			a[i][j]=a[i-1][j-1]+a[i-1][j];
		}
	}
	for(i=1;i<=n;i++)
	{
		for(j=1;j<=i;j++)
		printf("%d  ",a[i][j]);
		printf("\n");
	}
	return 0;
}

问题分析:注意循环数组

实验四

代码

#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_head(int year,int month,int day)
	{
		int i,j,s=0;
		if(year%4==0)
		i=1;
		else
		i=0;
		for(j=1;j<month;j++)
		s+=day_tab[i][j];
		s+=day;
		return s;
    }

main()
{
	int y,m,d;
	printf("输入年月日:");
	scanf("%d %d %d",&y,&m,&d);
	printf("是这年的第%d天",day_head(y,m,d));
	return 0;
}

问题分析:注意天数的算法

实验五

代码

#include<stdio.h>
#include<string.h>
#define n 40
main()
{
	char str[n],ch='y';
	int i,len;
	printf("输入一个字符串:");
	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("\n该字符串不是回文数");
	    return 0;
}

问题分析:注意回文数的表达方式

三、实验小结

1、学习了冒泡排序和选择排序

2、代码常常会打错,打代码速度不快

posted @ 2021-06-22 21:12  阿萨德安全大青蛙  阅读(38)  评论(0编辑  收藏  举报