第八次作业

心得体会:第一题用到的是一维数组,要注意的问题有选择排序法算法的运用,还有要注意一维数组的引用;程序中遇到的问题有结果并没有按从大到小输出而是输出了一个数;

第二题也用到了一维数组,对于这道题的算法不是很清楚,所以借助了网上的资料才做完,第三题用到了用二维数组求三角形矩阵,注意的问题有:将二维数组的行下标和列下标都作为循环变量,还有就是在二维数组中行下标可省,列下标不能省略。

1选择法排序。输入一个正整数n,在输入一个整数n,将他们从大到小排序后输出。

#include<stdio.h>
int main(void)
{
 int a[10];
 int i,t,j,n;
    printf("Input n:");
    scanf("%d",&n);
 for(i=0;i<n;i++)
     scanf("%d",&a[i]);
 for(i=0;i<n-1;i++)
 {
  for(j=0;j<n-1-i;j++)
  {
   if(a[j]<a[j+1])
   {
    t=a[j];a[j]=a[j+1];a[j+1]=t;
   }
  }
 }
   for(i=0;i<n;i++)
   {
    if(i<n-1)
  printf("%d",a[i]);
    else
     printf("%d\n",a[n-1]);
   }
 return 0;
 }
2求一批整数中出现次数最多的数字。输入一个正整数,在输入一个n个,分析每个整数的每一位数字,求出出先次数最多的数字#include<stdio.h>
int main(void)
{
 int n,i,max=0,temp,time[10]={0};
 printf("enter n:");
 scanf("%d",&n);
 printf("enter %d integers:",n);
 for(i=0;i<n;i++){
  scanf("%d",&temp);
  while(temp!=0){
   time[temp%10]++;
   temp/=10;
  }
    }
 for(i=0;i<10;i++){
  if(max<time[i])
   max=time[i];
 }
 printf("出现最多次数%d次的数字是:",max);
 for(i=0;i<10;i++)
  if(time[i]==max)
   printf("%d",i);
  printf("\n");
  return 0;
}
3判断上三角形矩阵。输入一个正整数n和n阶方阵a中的元素,如果a是上三角形矩阵,输出“yes",否则输出”no"
#include<stdio.h>
int main(void)
{
 int i,j,n,flag;
 int a[6][6];
 printf("enter n:");
 scanf("%d",&n);
 for(i=0;i<n;i++)
  for(j=0;j<n;j++)
   scanf("%d",&a[i][j]);
  flag=1;
  for(i=1;i<n;i++)
        {
   for(j=0;j<i;j++)
   {
    if(a[i][j]==0)
     flag;
    else
     flag=0;
   }
  }
  
   if(flag)
    printf("YES\n");
   else
    printf("NO\n");
   return 0;
}
 
 
 
 

 
posted @ 2019-06-09 23:36  张玉盼  阅读(121)  评论(1编辑  收藏  举报