欢迎来到祥子的博客

你感觉我,就像我感觉你,世界上的另一个我。

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

C语言程序设计报告

实验项目:课堂练习7.3.1-1,7.3.1-2,7.3.2-1,7.3.2-2,7.3.3

姓名:余永祥 实验地点:家 实验时间:2020年5月7日

一、实验目的与要求

1.加强对数组这一数据类型的理解与应用;

2.强化程序设计能力。

二、实验内容

1.实验练习:

实验7.3.1-1

实验代码:

#include<stdio.h> 
#include<stdlib.h>
#include<time.h>
void sort1(int s[],int n)
{
	int i,j,temp;
	for(i=0;i<=9;i++)
	{
		for(j=9;j>=0;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(time(NULL));
	printf("产生10个随机整数:\n");
	for(i=0;i<10;i++)
	{
		a[i]=rand();
	}
	for(i=0;i<10;i++)
	{
		printf("%d ",a[i]);
	}
	printf("\n");
	sort1(a,10);
	printf("排序后结果:\n");
	for(i=0;i<10;i++)
	{
		printf("%d ",a[i]);
	}
}

出现问题:无

注意事项:无

2.实验练习:

实验7.3.1-2

实验代码:

#include<stdio.h> 
#include<stdlib.h>
#include<time.h>
void sort2(int s[],int n)
{
	int i,j,k,temp;
	for(i=0;i<n-1;i++)
	{
		k=i,j=i+1;
		for(;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(time(NULL));
	printf("产生10个随机整数:\n");
	for(i=0;i<10;i++)
	{
		a[i]=rand();
	}
	for(i=0;i<10;i++)
	{
		printf("%d ",a[i]);
	}
	printf("\n");
	sort2(a,10);
	printf("排序后结果:\n");
	for(i=0;i<10;i++)
	{
		printf("%d ",a[i]);
	}
}

出现问题:无

解决方法:无

3.实验练习:

实验7.3.2-1

实验代码:

#include<stdio.h>
main()
{
	int a[50][50],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<=i-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");
	}
}

三角形版

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

4.实验练习:

实验7.3.2-2

实验代码:

#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 y,int m,int d) 
{
	int i=0,j,s=0;
	if(y%4==0&&y%100!=0||y%400==0)
       { 
		i=1;
	}
	for(j=1;j<m;j++)
        {
	s=s+day_tab[i][j];
	}
	s+=d; 
	return s; 
}
int main()
{
	int y,m,d;
	printf("Input year_month_day:");
	scanf("%d%d%d",&y,&m,&d);
	printf("是这年的第%d天\n",day_year(y,m,d));
	return 0;
}

出现问题:中间记错11月份天数了,尴尬

解决方法:无

5.实验练习:

7.3.3

实验代码:

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

出现问题:无

解决方法:无

三、实验小结

收获:

1.复习了之前学习的内容,比如各种三角形的输出;

2.熟悉掌握了数组的使用方法,可以更加熟练的使用;

不足:

1.偶尔会出现漏括号的问题,主要出现在数组的定义中;

2.对地址和数据的理解还不到位,还会向同学们学习一下。

posted @ 2020-05-24 18:39  赤羽业sama  阅读(246)  评论(0编辑  收藏  举报