13、 以下程序是统计一组数据中正数的和、正数的个数;零的个数;负数的和,负数的个数。数据以-999为结束
发布网友
发布时间:2023-03-22 00:14
我来回答
共2个回答
热心网友
时间:2023-10-09 22:42
public class Count{
public static void main(String[] args) {
int[] str={1,0,-1,2,-2,3,-3,-999,4,-4,0,0,15};//列举的一组数据
int Sum_Z=0;//正数和
int Sum_F=0;//负数和
int Num_Z=0;//正数个数
int Num_F=0;//负数个数
int Num_L=0;//零个数
for(int i=0;i<str.length;i++){
if (str[i]==-999){
System.out.println("程序结束!");
break;
}else if (str[i]>0){//正数
Sum_Z=Sum_Z+str[i];
Num_Z++;
}else if (str[i]<0){//负数
Sum_F=Sum_F+str[i];
Num_F++;
}else if (str[i]==0){//零
Num_L++;
}
}
System.out.println("正数和="+Sum_Z+";负数和="+Sum_F+";Num_Z="+Num_Z+";Num_F="+Num_F+";Num_L="+Num_L);
}
}追问谢了
热心网友
时间:2023-10-09 22:43
//data file name is ddd.dat;
#include <stdio.h>
#include <stdlib.h>
main(){
FILE *fp;
int t,tag,z,f,l,sz,sf;
if((fp=fopen("ddd.dat","r"))==NULL)exit(1);
while(!feof(fp)){
fscanf(fp,"%d",&t);
if(t==-999)exit(2);
if(t>0)tag=1;
else if(t==0)tag=0;
else tag=-1;
switch(tag){
case 1:z++;sz+=t;break;
case 0:l++;break;
case -1:f++;sf+=t;break;
}
fclose(fp);
printf("%d Positive numbers are amount to %d\n" z;sz);
printf("%d Negative numbers are amount to %d\n" f;sf);
printf("%d Zero numbers \n", l);
}