展开全部
不能把计算最大值和最小值写在同一个循环里,类似的错误是初学者经常易错的,以后一定要注意
#include <stdio.h>
void main(void)
{
int score[7] = {23,33,44,55,66,77,88};
int i, max = 0, min = 100;
for(i=0;i<7;i++)
{
if(score[i] > max)
{
max = score[i];
}
}
for(i=0;i<7;i++)
{
if(score[i] < min)
{
min = score[i];
} }
printf("最大值:%d, 最小值:%d", max, min);}
#include <stdio.h>
void main(void)
{
int score[7] = {23,33,44,55,66,77,88};
int i, max = 0, min = 100;
for(i=0;i<7;i++)
{
if(score[i] > max)
{
max = score[i];
}
}
for(i=0;i<7;i++)
{
if(score[i] < min)
{
min = score[i];
} }
printf("最大值:%d, 最小值:%d", max, min);}
展开全部
在第一个小于MAX的值出来之前,所有的值都不会做和MIN的比较,把MAX和MIN的比较分开来就可以了,FOR里面的代码如下
for(i=0;i<7;i++)
{
if(score[i]>max) max=score[i];
if(score[i]<min) min=score[i];
}
for(i=0;i<7;i++)
{
if(score[i]>max) max=score[i];
if(score[i]<min) min=score[i];
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你不能用 if else if结构
改正如下
if(score[i]>max) max=score[i];
if(score[i]<min) min=score[i];
改正如下
if(score[i]>max) max=score[i];
if(score[i]<min) min=score[i];
追问
请问为什么不能用if else if 的结构啊
追答
因为第一个值比较就出现问题了,
如第一次时score[0]=23刚好是最小值,
但max=0
所以第一条件
if(score[i]>max)成立,执行max=score[i],就不去执行else了,所以就造成错误。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
void main() {
int score[7] = {23,33,44,55,66,77,78};
int i, max = 0, min = 100;
for(i = 0; i<7; i++) {
if(score[i] > max) {
max = score[i];
}
if (score[i]<min) {
min = score[i];
}
}
printf("最高分为:%d , 最低分为:%d \n", max, min);
}
void main() {
int score[7] = {23,33,44,55,66,77,78};
int i, max = 0, min = 100;
for(i = 0; i<7; i++) {
if(score[i] > max) {
max = score[i];
}
if (score[i]<min) {
min = score[i];
}
}
printf("最高分为:%d , 最低分为:%d \n", max, min);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把else去掉就OK
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询