c语言第八次作业

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

 

#include<stdio.h>
int main (void)
{
int i,index,k,n,t;
int a[10];
printf("输入数据的个数n:");
scanf("%d",&n);
printf("输入数据%d;",n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(k=0;k<n-1;k++)
{
index=k;
for(i=k+1;i<n;i++)
if(a[i]>a[index])
index=i;
t=a[index];
a[index]=a[k];
a[k]=t;
}
printf("排序结果:");
for(i=0;i<n;i++)
printf("%d\t",a[i]);
printf("\n");
return 0;
}
2.求一批整数中出现次数最多的数字,输入一个正整数n(1<n<=1000),再输入n个整数,分析每个整数的每一位数字,求出现次数最多的数字。

#include<stdio.h>

int main()
{
int a[10],b[1000],i,n,x;
printf("输入数据的个数n:");
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&b[i]);
for(i=0;i<n;i++){
x=b[i];
while(x>0){
a[x%10]++;
x=x/10;
}
}
for(i=1,x=0;i<10;i++)
if(a[x]<a[i])
x=i;
printf("输入次数最多的数字=%d\n",x);
return 0;
}

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

#include<stdio.h>
int main(void)
{
int a[6][6],i,j,n,flog;
printf("请输入是几阶矩阵:\n");
scanf("%d",&n);
printf("请输入矩阵的数据:\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;
}

心得体会:这次作业算是按时完成了,第一题中做的时候用到了前面所学的交换语句,做的时候还很顺利;

第二题中用到了while语句,目前为止还不太会用,运行过程中出现了好多的错误,自己没有找出来,是在舍友的帮助下完成的这道题;

第三题中的for语句用的很多,在做题的时候思路不清晰,总是丢三落四的,这道题做的时间最长,最难受,而且本想着试试减少用printf,可是出现错误的次数太多,所以还是一步步的像刚开始那样写了,这样我读起来还是比较容易一点,还能读出来。

 

posted on 2019-06-10 22:02  马邵杰  阅读(286)  评论(0编辑  收藏  举报