C语言的一个最大值问题

来源:百度知道 编辑:UC知道 时间:2024/05/22 05:29:50
cnt=0;max=xx[0];;pj=0.0;cnt=0;k=0;
for(i=0;i<N;i++)
if(xx[i]>max) max=xx[i];
for(i=0;i<N;i++)
{if(xx[i]==max) cnt++;
if(xx[i]%3==0||xx[i]%7==0) {pj+=xx[i];k++;}

}
if(k==0) pj=0;
else pj/=k;‘

问题是求数组xx中最大数max及最大数的个数cnt和数组xx中值能被3整除或能被7整除的数的算术平均值pj(保留两位小数)

我这样写对不对呢?

要是这样写呢

cnt=0;max=xx[0];;pj=0.0;cnt=0;k=0;
for(i=0;i<N;i++)
if(xx[i]%3==0||xx[i]%7==0) {pj+=xx[i];k++;}
if(xx[i]>max)
{max>xx[i];cnt=1}
else if(xx[i]==max)cnt++;

if(k==0) pj=0;
else pj/=k;

哪种正确?

我只看了第一种,算法是对的,不过语法有点问题,有个地方有两个封号,我自己运行了下,你看看,可能有些小地方你没注意到。
#include<iostream.h>
#define N 7
void main()
{
int xx[N]={1,2,3,4,5,6,7},max;
int cnt,k,i;
double pj;
cnt=0;
max=xx[0];
pj=0.0;
k=0;
for(i=0;i<N;i++)
if(xx[i]>max) max=xx[i]; //max=7
for(i=0;i<N;i++){
if(xx[i]==max) cnt++;
if(xx[i]%3==0||xx[i]%7==0){ //xx=3,6,7,k=3,pj=5.3
pj+=xx[i];k++;
}
}
<<k<<endl;
if(k==0) pj=0;
else pj/=k;
cout<<pj<<endl
}