C语言实验作业8
实验目的:1、掌握c语言中数组的使用方法。
2、掌握选择法排序的使用方法。
3、掌握双维数组的使用方法。
4、掌握用数组实现矩阵的程序。
实验一
1、选择法排序。输入一个正整数n(1<n<=1000),再输入n个整数,将他们从大到小排序后输出。
2、实验代码:
/*选择法排序*/
#include <stdio.h>
int main()
{
/*定义函数*/
int i,j,t,a[1000],n;
printf("Enter n(1<n<=1000):"); /*输入n*/
scanf("%d",&n);
printf("输入%d个数:",n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n;i++)
for (j=i+1;j<n;j++)
if(a[i]<a[j]) /*判断数组中各个数的大小*/
{
t=a[i];
a[i]=a[j];
a[j]=t; /*将数组从大到小排列*/
}
for(i=0;i<n;i++)
printf("%5d", a[i]); /*输出排列后的数组*/
printf("\n");
return 0;
}
3、实验结果:
实验二
1、求一批整数中出现最多的数字。输入一个正整数n(1<n<=1000),再输入n个整数,分析每个整数的每一位数字,求出现次数最多的数字。
2、实验代码:
/*求一批整数中出现最多的数字*/
#include<stdio.h>
int main()
{
int b[10],a[1000],i,n,t,m; /*定义函数*/
printf("Enter n:");
scanf("%d",&n);
printf("输入%d个整数:",n); /*输入n个整数*/
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n;i++){
m=a[i];
while(m>0){
t=m%10;
m=m/10;
b[t]++; /*将数中各个位置的数提取出来*/
}
}
for(i=1,m=0;i<10;i++)
if(b[m]<b[i]) /*判断出现次数最多的数*/
m=i;
printf("出现次数最多的数是:%d\n",m);
for(i=m+1;i<10;i++)
if(b[m]==b[i])
printf("%d",i);
printf("\n"); /*输出*/
return 0;
}
3、实验结果:
实验三
1、判断上三角矩阵。输入一个正整数n(1<=n<=6)和你阶方阵a中的元素,如果a是上三角矩阵,输出“”YES"",否则输出""NO""。
2、实验代码:
/*判断上三角矩阵*/
#include<stdio.h>
int main()
{
int a[6][6]; /*定义二维数组*/
int n,i,j,m;
m=1;
printf("Enter n(1<=n<=6):");
scanf("%d",&n);
printf("输入%d阶矩阵:",n);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]); /*输入二维数组的元素*/
for(i=1;i<n;i++)
for(j=0;j<i;j++)
if(a[i][j]!=0){ /*判断是否为上三角矩阵*/
printf("NO\n"); /*不是上三角矩阵输出NO*/
m=0;
break;
}
if(m==1)
printf("YES\n"); /*是上三角矩阵输出YES*/
return 0;
}
3、实验结果:
实验心得:在本次作业中我对一维数组和二维数组的运用逐渐熟练,并对选择排序法,判断出现最多的数和判断上三角矩阵的程序有了充分的认识,在编程过程中不清楚数组内容量大小的情况下。可以将数组的容量先扩充得大些,这样可以避免数组容量不足出现乱码的情况,在编程过程中还需要注意各个循环所负责的部分,避免出现多次循环。