1、任意读入10个整数存放到数组a中,统计数组中出现频率最高的数,输出该数及其出现次数。
如果数组中没有重复出现的数,则输出"没有重复出现的数";
#include<stdio.h>
int main()
{
int i,j,k=0,a[10],b[10]={1,1,1,1,1,1,1,1,1,1},flag=0,max=0;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("a数组元素为:");
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
for(i=0;i<10;i++)
{
for(j=i+1;j<10;j++)
{
if(a[i]==a[j])
{
flag=1;
b[i]++;
}
}
}
if(flag==0)
printf("没有重复出现的数\n");
else
{
for(i=0;i<10;i++)
{
if(b[i]>=max)
max=b[i];
}
for(i=0;i<10;i++)
{
if(b[i]==max)
printf("数组a中出现频率最高的数是%d,出现次数为%d\n",a[i],b[i]);
}
}
}
2、
任意读入10个整数存放到数组a中,在main()中完成如下功能:
找出其中最大的数,给出其在数组中的位置,如果不止有一个最大数,则需要给出所有的最大数在数组中的位置(位置编号由小到大输出)
#include<stdio.h>
int main()
{
int i,a[10],max,j,k;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
max=a[0];
for(i=0;i<10;i++)
{
if(a[i]>=max)
max=a[i];
}
printf("最大值是%d,其在数组中位置是",max);
for(i=0;i<10;i++)
{
if(a[i]==max)
printf("%d",i);
}
return 0;
}
3、分别输入两个长度为5的从小到大排好序的整数数组,将这两个数组合并到第三个数组中,保持从小到大的排序,并输出。
#include<stdio.h>
int main()
{
int a[5],b[5],c[5];
int i,j,n;
for(i=0;i<5;i++)
scanf("%d",&a[i]);
for(j=0;j<5;j++)
scanf("%d",&b[j]);
for(i=0;i<5;i++)
c[i]=a[i];
for(j=0;j<5;j++)
c[j+5]=b[j];
for(i=0;i<10;i++)
{
for(j=i+1;j<10;j++)
{
if(c[i]>c[j])
{
n=c[i];
c[i]=c[j];
c[j]=n;
}
}
}
for(i=0;i<10;i++)
printf("%d ",c[i]);
return 0;
}
4、输入一个4行4列的单精度数组,计算主对角线元素之和,保留1位小数输出
#include<stdio.h>
int main()
{
float a[4][4],sum=0;
int i,j;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
scanf("%f",&a[i][j]);
for(i=0;i<4;i++)
for(j=i;j<=i;j++)
sum=sum+a[i][j];
printf("%.1f",sum);
return 0;
}
5、输入一个2行3列的整数数组,将其进行转置(行和列元素交换)并输出。
#include<stdio.h>
int main()
{
int a[2][3],b[3][2];
int i,j;
for(i=