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、代码常常会打错,打代码速度不快