心得体会:第一题用到的是一维数组,要注意的问题有选择排序法算法的运用,还有要注意一维数组的引用;刚开始编程的时候由于没搞清楚,导致运行不出来,之后借助例题和同学的讲解就做出来了,总之还是缺乏上机练习。
1·/*选择法排序。输入一个正整数n(1<n<=10),再输入n个整数,将他们从大到小排序后输出。*/
#include<stdio.h>
int main(void)
{
int i,n,x,k,index,temp;
int a[10]; /*定义一个数组a,有10个整型元素*/
printf("Enter n:\n"); /*输入n*/
scanf("%d",&n);
printf("Enter %d integers:",n);/*输入n个数*/
for(i=0;i<n;i++) /*将输入数依次赋给数组a的n个元素a[0]~a[n-1]*/
scanf("%d",&a[i]);
for(k=0;k<n-1;k++){
index=k; /*index存放最大值所在的下标*/
for(i=k+1;i<n;i++)/*寻找最大值所在的下标*/
if(a[i]>a[index])
index=i;
temp=a[index];/*最大元素与下标为k的元素交换*/
a[index]=a[k];
a[k]=temp;
}
printf("After sorted:\n");/*输出n个数组元素的值*/
for(i=0;i<n;i++)
printf("%d",a[i]);
printf("\n");
return 0;
int main(void)
{
int i,n,x,k,index,temp;
int a[10]; /*定义一个数组a,有10个整型元素*/
printf("Enter n:\n"); /*输入n*/
scanf("%d",&n);
printf("Enter %d integers:",n);/*输入n个数*/
for(i=0;i<n;i++) /*将输入数依次赋给数组a的n个元素a[0]~a[n-1]*/
scanf("%d",&a[i]);
for(k=0;k<n-1;k++){
index=k; /*index存放最大值所在的下标*/
for(i=k+1;i<n;i++)/*寻找最大值所在的下标*/
if(a[i]>a[index])
index=i;
temp=a[index];/*最大元素与下标为k的元素交换*/
a[index]=a[k];
a[k]=temp;
}
printf("After sorted:\n");/*输出n个数组元素的值*/
for(i=0;i<n;i++)
printf("%d",a[i]);
printf("\n");
return 0;
}
![](https://i-blog.csdnimg.cn/blog_migrate/3f5bd8818115c3a673bc63f727ee1683.png)
/*求一批整数中出现次数最多的数字。输入一个正整数,在输入一个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;
}
/*判断上三角矩阵。输入一个正整数n(1<=n<=6)和n阶矩阵a中的元素,如果a是上三角矩阵,输出“YES”,
否则,输出“NO”。上三角矩阵指主对角线以下的元素都为0的矩阵,主对角线为从矩阵的左上角至右下角的连线。试编写相应程序。*/
#include<stdio.h>
int main(void)
{
int a[6][6],flag,i,j,n;
printf("enter n:");
scanf("%d",&n);
printf("enter array:\n");
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
flag=1;
for(i=0;i<n;i++)
for(j=0;j<i;j++)
if(a[i][j]!=0)
flag=0;
if(flag)
printf("YES\n");
else
printf("NO\n");
return 0;
}
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;
}
![](https://i-blog.csdnimg.cn/blog_migrate/1dd42a3b7a2765afb5de169c5b77b9b6.png)
否则,输出“NO”。上三角矩阵指主对角线以下的元素都为0的矩阵,主对角线为从矩阵的左上角至右下角的连线。试编写相应程序。*/
#include<stdio.h>
int main(void)
{
int a[6][6],flag,i,j,n;
printf("enter n:");
scanf("%d",&n);
printf("enter array:\n");
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
flag=1;
for(i=0;i<n;i++)
for(j=0;j<i;j++)
if(a[i][j]!=0)
flag=0;
if(flag)
printf("YES\n");
else
printf("NO\n");
return 0;
}
![](https://i-blog.csdnimg.cn/blog_migrate/d229d02709393e269194c1ce086d76a5.png)