第八次作业

---恢复内容开始---

2.求一批整数中出现最多的数字。输入一个整数n,再输入n个整数,分析每个整数的每一位数字,求出现次数最多的数字,试编写程序。

#include<stdio.h>
int main(void)
{
int a[5],b[10],i,n,y;
printf("Enter n:");
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&b[i]);
for(i=0;i<n;i++){
y=b[i];
while(y>0){
a[y%5]++;
y=y/5;
}
}
for(i=1,y=0;i<10;i++)
if(a[y]<a[i])
y=i;
printf("max=%d",y);
for(i=y+1;i<10;i++)
if(a[y]==a[i])
printf("%d",i);
printf("% ");

return 0;
}

 

---这道题中本身的程序是对的,,但是我在输出结果的过程中还是出现了问题,我试着输出好几遍都出现问题,里面的让我对数组有了更近一步的了解,我会再试着把问题找出来关于这道题。

1.选择法排序,输入一个正整数n,再输入n个整数,将他们从大到小排序后输出,试编写程序。

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

}
for(i=0;i<n;i++)
printf("%ds",a[i]);
printf(" ");

return 0;
}

 

这道数组排序我觉得最主要得是细心发现去做,还有就是里面有一些固定嵌套语句,掌握这些这道题可能就不那么难了。

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

#include<stdio.h>
int main()
{
int a[4][4];
int n,i,j,t;
t=1;
printf("Enter n:");
scanf("%d",&n);
printf("输入%d阶矩阵:",n);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
for(i=1;i<n;i++)
for(j=0;j<i;j++)
if(a[i][j]!=0){
printf("NO ");
t=0;
break;
}
if(t==1)
printf("YES ");
return 0;

}


心得:此次编程收获的更多的是知识,还有就是加深了对数组这一块儿基本考察类型,里面有一些固定嵌套要熟悉和掌握,欠缺的更多的是对基础知识的不扎实以及稳固,还得多看书。

原文地址:https://www.cnblogs.com/CXS312/p/10999217.html