weixin_38625773 2017-05-04 16:10 采纳率: 0%
浏览 977

这个哪错了,运行错误

#include
#include
int x[1000];
int main()
{
memset(x,0,sizeof(x));
int b,i,j=0,m,n;
scanf("%d",&x[0]);
for(b=1,n=1;getchar()!='\n';n++,b++)
{
scanf("%d",&x[b]);

}
m=x[0];
for(i=0;i<n;i++)
{
   if(x[i]>m)
   {
       m=x[i];
   }
}
for(i=0;i<n;i++)
{
    if(x[i]==m)
    {
        j++;
    }
}
printf("maximum data is %d, whose occurences is %d.",m,j);

}

  • 写回答

2条回答 默认 最新

  • sol21 2017-05-04 17:05
    关注

    1.第一次scanf后缓冲区内有\n所以getchar直接吃掉\n造成运行错误
    2.for语句内的getchar会吃掉你第一个数的首字符,比如你输入1545,x[1]中是545
    3.如果相等就j++那你永远只能得到1,j++改成j=i

    评论

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘