之前发布的那个太草率了,抽空优化了一下,这下可以稍微借鉴一下了
INPUT01:1.1 2.2 3.3
OUTPUT:No mods
INPUT02:1 2 3.1 3.1 3.1
OUTPUT:The Mod:3.1 Frequency of Occurrence:3
INPUT03:-1 -1 -2 -2 -3 -3
OUTPUT:The number of mods:3 Mods:-1,-2,-3 Frequency of Occurrence:2
#include <stdio.h>
#define WRONG -1724
int main(void)
{
short n,i[7]={[0 ... 6]=1};
printf("Number:"); scanf("%d",&n); float ar[n]; //读入n来创建动态数组
for(i[0]=0;i[0]<n;i[0]++)
scanf("%f",ar+i[0]); //读入所需的数据
for(i[0]=0;i[0]<n-1;i[0]++)
for(i[1]=0;i[1]<n-i[0]-1;i[1]++)
if(*(ar+i[1])>*(ar+i[1]+1))
{
i[2]=*(ar+i[1]);
*(ar+i[1])=*(ar+i[1]+1);
*(ar+i[1]+1)=i[2];
} //经典的排序方法,将数组从小到大排序
float sta[10][10]={[0 ... 9]={[0 ... 9]=WRONG}}; //创建二维数组sta,初始化为WRONG是方便后面判断,一维代表出现次数相同的数值有多少个,二维代表某一数值出现的总次数,数组本身储存对应