主题:哪儿错了
梦梦学编程
[专家分:10] 发布于 2010-11-08 15:38:00
编写程序,输入一批整数,以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个回复)
沙发
聋眼睛瞎耳朵 [专家分:50] 发布于 2010-11-08 21:20:00
for(i=1;;i++)
cin>>c[i];
循环语句,中间连个中止条件都没有,循环不是一直执行吗??那你肯定要一直输入啊,怎么会输出!!!加一个判断条件就行了。
板凳
lovesky303 [专家分:120] 发布于 2010-11-09 09:13:00
#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 楼
niufujun [专家分:50] 发布于 2010-11-09 15:46:00
#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;
}
我来回复