第八次作业
/*选择法排序。输入一个正整数n(1<n<=10),再输入n个
整数,将他们从大到小排序后输出。试编写相应程序。*/
#include<stdio.h>
int main(void)
{
int n,i,s,k,t;
int a[10];
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(k=0;k<n-1;k++){
s=k;
for(i=k+1;i<n;i++)
if(a[i]>a[s])
s=i;
t=a[s];
a[s]=a[k];
a[k]=t;}
for(i=0;i<n;i++)
printf("%5d",a[i]);
printf("\n");
return 0;
}

/*输入正整数n,再输入n个数字,试分析出在输入过程中出现次数最多的数*/
#include<stdio.h>
int main(void)
{
int n,i,x;
int a[1000],b[10];
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n;i++){
x=a[i];
while(x>0){
b[x%10]++;
x=x/10;
}
}
for(i=1,x=0;i<10;i++)
if(b[x]<b[i])
x=i;
printf("出现最多的数是:%d\n",x);
return 0;
}

/*判断上三角矩阵。输入一个正整数n(1<=n<=6)和n阶方阵a中的元素,如果a
是上三角矩阵,输出“YES”,否则,输出“NO”。试编写相应源程序。*/
#include<stdio.h>
int main(void)
{
int a[6][6],i,j,n,flog;
scanf("%d",&n);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
flog=1;
for(i=0;i<n;i++)
for(j=0;j<i;j++)
if(a[i][j]!=0)
flog=0;
if(flog)
printf("输出 YES\n");
else
printf("输出 NO\n");
return 0;
}

心得:通过本次作业学会了如何用一堆一维数组编程,以及排序算法和二维数组的引用,但在编程方面感觉还是不是很娴熟,甚至有的地方还不太清楚,在同学的帮助下才做完了程序,所以还是缺乏上机。
浙公网安备 33010602011771号