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、实验结果:

 

 

 

实验心得:在本次作业中我对一维数组和二维数组的运用逐渐熟练,并对选择排序法,判断出现最多的数和判断上三角矩阵的程序有了充分的认识,在编程过程中不清楚数组内容量大小的情况下。可以将数组的容量先扩充得大些,这样可以避免数组容量不足出现乱码的情况,在编程过程中还需要注意各个循环所负责的部分,避免出现多次循环。

转载于:https://www.cnblogs.com/ycy929/p/homework8.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值