第八次作业

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

#include<stdio.h>

int main(void)

{

int a[10],n,i,k,temp,index;

printf("输入一个正整数:");

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[index]<a[i])

{

index=i;

}

}

temp=a[index];

a[index]=a[k];

a[k]=temp;

}

printf("排序后:\n");

for(i=0;i<n;i++)

{

printf("%4d",a[i]);

}

 

return 0;

}

 

 

2.求一批整数中出现最多的数字。输入一个正整数n(1<n<=1000),再输入n个整数,分析每个整数的每一位数字,求出现最多的数字。试编写程序。

#include<stdio.h>

#include<math.h>

int main (void)

{

int t,wei,n,j,i,sum,most,max;

{

int a[10]={0,0,0,0,0,0,0,0,0,0};

     printf("请输入一个正整数n(1n1000,输入0退出):\n");

     scanf("%d",&n);

if(n>=1&&n<=1000)

{

         printf("请输入%d个整数:\n",n);

         for(j=1;j<=n;j++)

     {

         scanf("%d",&t);

         if(t<0)

         t=-t;

         do{

          wei=t%10;

         t=t/10;

         a[wei]++;

         }while(t!=0);

         }

         sum=0;

        max=a[0];

most=0;

        for(i=1;i<10;i++)

         if(a[i]>max)

        {

        max=a[i];

        most=i;

         }

         printf("出现最多的数字为%d",most);

         for(i=0;i<10;i++)

         if(max==a[i]&&most!=i)

         printf("%d",i);

         printf(",出现了%d\n",max);

}

else if(n==0)

{

printf("程序运行结束\n");

}

else

{

printf("输入错误,请重新输入\n");

}

}

    return 0;

}

 

3.判断上三角形矩阵。输入一个正整数n(1<=n<=6)和n阶方阵a中的元素,如果a是上三角形矩阵,输出YES,否则,输出NO。试编写程序。

#include<stdio.h>
int mat[10][10];
void main()
{
int n,i,j;
int ok=1;
scanf("%d",&n);
for(i=0;i<n;++i)
for(j=0;j<n;++j)
scanf("%d",&mat[i][j]);
for(i=1;i<n;++i)
{
for(j=0;j<i;++j)
if(mat[i][j]!=0)
ok=0;
}
printf("%s\n",ok?"YES":"NO");
}

 

 

 

4.心得:

在定义数组的时候[ ]里面只能写整形常量或者是返回整形常量的表达式。

数组的初始化

数组的数组名其实是数组首元素的地址

 

posted @ 2019-06-10 22:07  黄月香  阅读(314)  评论(0编辑  收藏  举报