求一组整数中的正数之积与负数之和,直到遇0结束。c语言问题

如题所述

代码如下:

从键盘上输入正数和附属,分别统计正数和负数的个数并计算所有数的和。输入0表示结束

*/

import java.util.Scanner;

class Demo15

{

public static void main(String[]args)

{

Scanner sc=new Scanner(System.in);

int num=1,t=0,f=0,sum=0;

while(num!=0){

System.out.println("请输入一个整数:");

num=sc.nextInt();

sum+=num;

if(num>0)

t++;

else if(num<0)

f++;

}

System.out.println("正数有"+t+"个"+",负数有"+f+"个"+",所有数的和为:"+sum);

}

}

扩展资料:

Scanner是SDK1.5新增的一个类,可是使用该类创建一个对象.

Scanner reader=new Scanner(System.in);

然后reader对象调用下列方法(函数),读取用户在命令行输入的各种数据类型:next.Byte(),nextDouble(),nextFloat,nextInt(),nextLin(),nextLong(),nextShot()

上述方法执行时都会造成堵塞,等待用户在命令行输入数据回车确认.例如,拥护在键盘输入12.34,hasNextFloat()的值是true,而hasNextInt()的值是false.NextLine()等待用户输入一个文本行并且回车,该方法得到一个String类型的数据。

下面是一个实例:

import java.util.*;

public class Example{

public static void main(String args[]){

System.out.println("请输入若干个数,每输入一个数用回车确认");

System.out.println("最后输入一个非数字结束输入操作");

Scanner reader=new Scanner(System.in);

double sum=0;

int m=0;

while(reader.hasNextDouble()){

double x=reader.nextDouble();

m=m+1;

sum=sum+x;

}

System.out.printf("%d个数的和为%f/n",m,sum);

System.out.printf("%d个数的平均值是%f/n",m,sum/m);

}

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-04-04
#include<stdio.h>
void main()
{
int i=0;
int a[]={}//这里填上数组的元素,也可以用循环读入
int sum=0,time=1;
for(;i<n;i++)//n为数组大小
{
if(a[i]>0)
time*=a[i];
else if(a[i]<0)
sum+=a[i];
else
break;
}

printf("正数之积: %d\n",time);
printf("负数之和: %d\n",sum);
}本回答被网友采纳
第2个回答  2012-04-21
假设数组的大小为max,那么就可以用:
int i,sum=0,sum[max]={...........};
for(i=0;i<max;i++)
{
if(num[i]!=0)
break;
else
{
sum+=num[i];//sum=sum+num[i];
}
}
printf("%d",sum);本回答被网友采纳
相似回答