回 帖 发 新 帖 刷新版面

主题:哪儿错了



编写程序,输入一批整数,以0结束,统计正数和负数的个数


输入


一组整数,以0结束


输出

正数和负数的个数,中间加一个空格分开

样例输入

1 -1 -2 3 -5 0

样例输出

2 3











#include <iostream.h>
int main()
{
  int i,k,a=0,b=0,c[100];
  for(i=1;;i++)
  cin>>c[i];
  for(k=1;k<=i;k++)
  {if(c[k]==0) break;
  else if(c[k]>0) a=a+1;
  else b=b+1;
  }
  cout<<a<<" "<<b;
  return 0;

为啥没输出?哪儿错了

回复列表 (共3个回复)

沙发

for(i=1;;i++)
  cin>>c[i];
循环语句,中间连个中止条件都没有,循环不是一直执行吗??那你肯定要一直输入啊,怎么会输出!!!加一个判断条件就行了。

板凳

#include<iostream>
using namespace std;

int main()
{
    int i,k,a=0,b=0,c[100];
      for(i=1;;i++)
      {
          cin>>c[i];
        if( 0 == c[i] )//这里添加一个判断就行了
        {
            break;
        }
    }
      for(k=1;k<=i;k++)
      {
          if(c[k]==0)
            break;
          else if(c[k]>0)
            a=a+1;
          else
            b=b+1;
  }
  cout<<a<<" "<<b<<endl; 
  return 0;
}

3 楼

#include<iostream>
using namespace std;

int main()
{
    int i,k,a=0,b=0,c[100];
      for(i=1;;i++)
      {
          cin>>c[i];
        if( c[i]==0 ) break;
 
    }
      for(k=1;k<=i;k++)
      {
           if(c[k]>0)
            a=a+1;
          else if(c[k]>0)
            b=b+1;
  }
  cout<<a<<" "<<b<<endl; 
  return 0;
}

我来回复

您尚未登录,请登录后再回复。点此登录或注册