C语言如何把找出的最大数置0

问题描述:

C语言如何把找出的最大数置0
输入10个数字,输出其中最大的3个数字,找出第一个后,需要把这个数字置0,然后找第二个最大的,
#include
void main()
{
int a,max,b;
int score[10];
for(a=0;a
1个回答 分类:综合 2014-10-07

问题解答:

我来补答
你这个问题描述不清楚.
做为一个实现特定功能的代码. 需要有输入和输入.

对于输入, 需要描述从哪里取数据, 是键盘, 文件还是内存.
还需描述数字格式, 是整数还是浮点数

对于输出, 需要描述怎样输出, 是输出到屏幕, 文件还是内存.
#include "stdio.h"
void find_max(int *pScore, int nScoreLen, int *pMax, int nMaxCount, int nResultLen);
int main(int argc, char* argv[])
{
#define SCORE_LEN 10
#define MAX_COUNT 3
int a,max[MAX_COUNT], nmax=0;
int score[SCORE_LEN];
for(a = 0; a < SCORE_LEN;++a)
{
printf("%d人目の点数を入力してください", a + 1);
scanf("%d", &score[a]);
}
for(a = 0; a < MAX_COUNT; ++a)
{
find_max(score, SCORE_LEN, max, MAX_COUNT, nmax);
printf("%d %dth\r\n",score[max[nmax]], nmax+1);
nmax++;
}
return 0;
}
void find_max(int *pScore, int nScoreLen, int *pMax, int nMaxCount, int nResultLen)
{
int a, b, c = 0;
int bInitOk = 0;
for(a = 0; a < nScoreLen; ++a)
{
for(b = 0; b < nResultLen; ++b)
{
if(pMax[b] == a)
{
break;
}
}
if(b < nResultLen)
{
continue;
}
if(0 == bInitOk)
{
bInitOk = 1;
c = a;
}
else
{
if(pScore[c] < pScore[a])
{
c = a;
}
}
}
pMax[nResultLen] = c;
}
再问: 看不懂。。。本来很简单的一个程序
再答: 你可以运行看看效果. 这个是很简单的逻辑.
 
 
展开全文阅读
剩余:2000
上一页:例2的第一问