第八次作业

1、选择法排序。输入一个正整数n(1<n<=10),再输入n个整数,把它们从大到小排序后输出。试编写相应程序。

#include<stdio.h>
int main(void)
{
int n,i,j,k;
int a[10];
printf("Enter n:");
scanf("%d",&n);
printf("Enter %d:",n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(a[i]<a[j])
{
k=a[i];
a[i]=a[j];
a[j]=k;
}
printf("After sorted:\n");
for(i=0;i<n;i++)
printf("%d\n",a[i]);
printf("\n");
return 0;
}

2、求一批整数中出现最多的数字。输入一个正整数n(1<n<=1000),再输入n个整数,分析每个整数的每一位数字,求出现次数最多的数字。例如输入3个整数1234、2345、3456,其中出现次数最多的数字是3和4,均出现了3次。试编写相应程序。

#include<stdio.h>

int main(void)

{

int a[5],b[10]={0},i,n,max=0;
printf("Enter n:");
scanf("%d",&n);
printf("Enter %d:",n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n;i++)
{
while(a[i]!=0)
{
b[a[i]%10]++;
a[i]/=10;
}
}
for(i=0;i<10;i++)
{
if(max<b[i])
max=b[i];
}
printf("出现最多次数的数字\n",max);
for(i=0;i<10;i++)
if(b[i]==max)
printf("%d\n",i);
printf("\n");
return 0;
}

3、判断上三角矩阵。输入一个正整数n(1<=n<=6)和n阶方阵a中的元素,如果a是上三角矩阵,输出“YES”,否则,输出“NO”。上三角矩阵指主对角线以下的元素都为0的矩阵,主对角线为从矩阵的左上角至右下角的连线。试编写相应程序。

#include<stdio.h>
int main(void)
{
int n,i,j,x,a[6][6];
printf("Enter n:");
scanf("%d",&n);
printf("Enter a[6][6]:");
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
for(i=0;i<n;i++)
for(j=0;j<i;j++)
{if(a[i][j]==0)
x=1;
else
x=0;
}
if(x==1)
printf("YES\n");
else
printf("NO\n");
return 0;
}

 

心得:这次作业第一题就根据书上的例题修改了一下就完成了,但第二、三题有点难,不会写,然后就网上查请教别人,经过好几次的修改才写完。总的来说还是没有掌握知识,没有好好上机锻炼。

posted @ 2019-06-10 21:45  苟童童  阅读(158)  评论(1)    收藏  举报