心得体会:第一题用到的是一维数组,要注意的问题有选择排序法算法的运用,还有要注意一维数组的引用;程序中遇到的问题有结果并没有按从大到小输出而是输出了一个数;
第二题也用到了一维数组,对于这道题的算法不是很清楚,所以借助了网上的资料才做完,第三题用到了用二维数组求三角形矩阵,注意的问题有:将二维数组的行下标和列下标都作为循环变量,还有就是在二维数组中行下标可省,列下标不能省略。
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; }