C语言,c++运行的错误

img

img


运行结果不能正确的得到有几个正数,几个负数,应该修改哪里?希望有人能帮帮忙😭

这是你输入的问题,你写的代码是先输入个数n,然后每输入一个按一次回车,因为你是用for循环逐个输入的,我运行如下:

img


但发现后面重复了,反复输出正负数个数,是因为你把这个输出放在了for循环内,导致反复输出,因此下面我只修改了你的一处代码,将cout输出放到了for循环外面,望采纳:

#include<iostream>
#include<string>
using namespace std;
int main()
{
void method(string s[],int n);
string s[100];
int n;
cout<<"请输入你所需要输入的数字总个数为:";
cin>>n;
for(int i=0;i<n;i++)
{
cin>>s[i];
} 
method(s,n);
system("pause");
return 0;
}
void method(string s[],int n)
{
int zhengshu=0, fushu=0;
for(int i=0;i<n;i++)
{
{
if(s[i]>"0")
zhengshu++;
}
{
if(s[i]<"0")
fushu++;
}
} 
cout<<"正数的个数为:"<<zhengshu<<endl;
cout<<"负数的个数为:"<<fushu<<endl; 
}

正确运行截图如下:

img

你没输入n
字符串类型改成整形直接和0比较

img

#include<iostream>
using namespace std;
int main(){
    int n,a[10],count=0,count1=0;
cout<<"输入n个整数:"<<endl;
cin>>n;
for(int i=0;i<n;i++)
cin>>a[i];


for(int j=0;j<n;j++)
{
      if(a[j]>0)
       count++;
      else
          count1++;
}

cout<<"正数个数:"<<count<<"负数个数:"<<count1<<endl;

return 0;
}



我的结果是正确的请采纳

你第一行不应该输入1,-2...。它要求输入的是总个数,你要先输入总个数n是多少,再输入这n个数。