请帮我看下是否规范?包括符号~

jeannechang3 2005-06-17 08:56:06
请写一个子程序Eresmall (int m,fload xx[M]),功能:将一个含m(m<10)个元素的数组xx中小于平均值所有元素顺次删除掉,并返回该数组中剩余的元素数目n。


Eresmall (int m,fload xx[M])
int sum=0;
int m,n=0;
float xx[];
printf("%s",xx[]);
while xx[m]!='/n';
{sum+=xx[m];
m++;
};
ave=sum/m;
for(i=0;i<10;i++)
for(j=0;j<10;j++)
{if xx[i]<ave;
xx[j]=xx[j+1];
else n++;
}
return n();
}
...全文
119 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jixingzhong 2005-06-18
  • 打赏
  • 举报
回复
1 在函数名的后面加上一个大括号!!

2 while xx[m]!='/n'; 如果是数值型数组,这样判断不好!!while的后面是要括号的!!

while(i<m) {sum+=xx[i]; i++;}


3 你的传递的参数中有m(注意!!!!!),就不能再定义局部变量m了,如上,用i,或者其他,都

可以!!

4 for(i=0;i<10;i++)
for(j=0;j<10;j++)
{if xx[i]<ave; //请在if后面加上括号!!
xx[j]=xx[j+1];
else n++;
}
该程序段存在逻辑问题!!当xx[i]<ave时候,只执行了一步的xx[j]=xx[j+1]

应当是数组后面的数全部前移一位的!!并且要将数据去掉一位!!

要注意,在执行了xx[j]=xx[j+1]之后,xx[j+1]还是存在的!!也就是数组的数据为数没有减少

jeannechang3 2005-06-18
  • 打赏
  • 举报
回复
拜托不要是c++
我现在在做c语言!!!!
mostideal 2005-06-17
  • 打赏
  • 举报
回复
Eresmall (int m,fload xx[M]) //应该是float xx[M]吧。
int sum=0;
int m,n=0;
float xx[]; // 这里是什么意思,没初始化呀。如是接参数就不应这样写。
printf("%s",xx[]); //这是输出你定义的还是传来的参数??如是前者你没初始化。
while xx[m]!='/n';
{sum+=xx[m];
m++;
};
ave=sum/m;
for(i=0;i<10;i++)
for(j=0;j<10;j++)
{if xx[i]<ave;
xx[j]=xx[j+1];
else n++;
}
return n(); //是啥意思??
}
llf_hust 2005-06-17
  • 打赏
  • 举报
回复
Eresmall (int m,float xx[M])// 要加返回类型 int
{
int sum=0;
int m,n=0;
float xx[];
printf("%s",xx[]); // 这句有问题,不知道你写在这儿是什么意思,xx[]什么内容都没有

while (xx[m]!='/n'; // 改为 while(xx[m] != '\n') 也不合适 符点数怎么
// 能和'\n' 就行比较 ,后面的;号也不要.m也没有初值
{sum+=xx[m];
m++;
};
ave=sum/m;
for(i=0;i<10;i++)
for(j=0;j<10;j++)
{
if xx[i]<ave;//改为 if(xx[i] < ave)
xx[j]=xx[j+1];
else
n++;
}
return n(); // 改为 return n;
}
llf_hust 2005-06-17
  • 打赏
  • 举报
回复
int Eresmall (int m, float xx[])
{
float fAverage=0.0;
float p[50];
int iCnt = 0, i = 0;
for (i = 0; i<m; i++)
{
fAverage = fAverage+xx[i];
}

fAverage = fAverage/m;
for (i = 0; i<m; i++)
{
if (xx[i] >= fAverage)
{
p[iCnt] = xx[i];
++iCnt;
}
}
for (i=0;i<iCnt;++i)
{
xx[i] = p[i];
}
return iCnt;
}

sunman1982 2005-06-17
  • 打赏
  • 举报
回复
有不规范的地方,while后面的();ave=sum/m;//??什么意思。return n();//??

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧