这段用标记法的程序谁来讲解一下啊,看不懂啊
输入一个数组,输入结束时打印出排序,如输入的数组为98 82 2 73 80 则输出为98 1
82 2
2 5
73 4
80 3
以下是正解:
#include<stdio.h>
#include<stdlib.h>
#define MAX 100
#define MIN 0
int main(void)
{
int score[MAX+1]={0};
int juni[MAX+2]={0};
int count=0,i;
do
{
printf("输入分数,-1结束:");
scanf("%d", &score[count++]);
}
while(score[count-1]!=-1);
count--;
for(i=0;i<count;i++)
juni[score[i]]++;
juni[MAX+1]=1;
for(i=MAX;i>=MIN;i--)
juni[i]=juni[i]+juni[i+1];
printf("得分\t排行\n");
for(i=0;i<count;i++)
printf("%d\t%d\n",score[i],juni[score[i]+1]);
return 0;
}