题目
解决代码及点评
/************************************************************************/
/*
24. 统计一个单位职工的年龄,要求把相同年龄最多的那个年龄找出来
(可能有几个这样的年龄),并统计出现的次数。
*/
/************************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
struct ZG
{
int age;
int times;
};
void main()
{
int arr[20]={0}; // 职工年龄
bool iss[20]={0};
struct ZG Szg[20]={0};
int p=0;
for (int i=0;i<20;i++)
{
arr[i]=rand()%30; // 给所有职工年龄赋值
}
for (int i=0;i<20;i++)
{
printf("%5d",arr[i]); // 输出
}
printf("\n");
for (int i=0;i<20;i++)
{
if (iss[i]==1) // iss表示已经处理的数字
{
continue;
}
int num=0;
for(int j=0;j<20;j++) // 查找所有和i相同的年龄
{
if (arr[i]==arr[j])
{
num++;
iss[j]=1;
}
}
Szg[p].age=arr[i]; // 保存年龄
Szg[p].times=num;
p++;
}
int maxtime=0;
for (int j=0;j<p;j++) // 查找最大次数
{
if (maxtime<Szg[j].times)
{
maxtime=Szg[j].times;
}
}
for (int j=0;j<p;j++) // 打印最大次数
{
if (maxtime==Szg[j].times)
{
printf("年龄为:%d 次数为%d\n",Szg[j].age,maxtime);
}
}
system("pause");
}
代码编译以及运行
由于资源上传太多,资源频道经常被锁定无法上传资源,同学们可以打开VS2013自己创建工程,步骤如下:
1)新建工程
2)选择工程
3)创建完工程如下图:
4)增加文件,右键点击项目
5)在弹出菜单里做以下选择
6)添加文件
7)拷贝代码与运行
程序运行结果