1.选择法排序。输入一个正整数n(1<=n<=10),再输入n个整数,将他们从大到小排序后输出。
#include<stdio.h>
int main(void)
{
int n,x,i,t,min;
int a[10];
printf("Enter n:\n");
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(x=0;x<n-1;x++){
min=x;
for(i=x+1;i<n;i++)
if(a[i]<a[min])
min=i;
t=a[min];
a[min]=a[x];
a[x]=t;}
printf("输出排序的值");
for(i=0;i<n;i++)
printf("%d",a[i]);
printf("\n");
return 0;
}

2.求一批整数中出现最多的数字。输入一个正整数n(1<=n<=1000),再输入n个整数,分析每个整数的每一位数字,求出现最多的数字。
#include<stdio.h>
int main(void)
{
int n,i,max=0,t,a[10]={0};
printf("Enter n:");
scanf("%d",&n);
printf("Enter :",n);
for(i=0;i<n;i++){
scanf("%d",&t);
while(t!=0){
a[t%10]++;
t/=10;
}
}
for(i=0;i<10;i++){
if(max<a[i])
max=a[i];
}
printf("出现最多次数的数字是:",max);
for(i=0;i<10;i++)
if(a[i]==max)
printf("%d ",i);
printf("\n");
return 0;
}

3.判断上三角矩阵。输入一个正整数n(1<=n<=6)和n阶方阵a中的元素,如果a是上三角矩阵,输出yes,否则输出no。
#include<stdio.h>
int main(void)
{
int i,j,n;
int a[6][6]={{1,2,3,4,5,6},{0,1,3,5,4,9},{0,0,2,5,6,3},{0,0,0,5,8,6},{0,0,0,0,4,8},{0,0,0,0,0,2}};
printf("Enter n:");
scanf("%d",&n);
for(i=0;i<n;i++){
for(j=0;j<n;j++)
printf("%d\t",a[i][j]);
printf("\n");}
for(i=1;i<n-1;i++){
for(j=i-1;j<n-2;j++)
if(a[i][j]==0){
printf("YES");}
else{
printf("NO");}}
printf("\t");
return 0;
}

心得:前两道题没问题,但是第三道出现了问题,当输入三阶矩阵的时候是正确的,但是输入四阶的时候出现了YES NO YES的情况,我不知道哪出了问题,希望老师指出。
浙公网安备 33010602011771号