用个链表写,效率还不错:
#include <stdio.h>
typedef struct Node{
int key;
struct Node* next;
}Node;
int main(){
Node* L=(int*)malloc(sizeof(int));
Node* p;
p=L;
int t,positive=0,negative=0;float sum=0;
while(scanf("%d",&t)!=EOF){
Node* s=(int*)malloc(sizeof(int));
s->key=t;
p->next=s;
p=s;
}
p=L->next;
while(p){
if(p->key>=0){
positive++;
sum+=p->key;
p=p->next;
}
else{
negative++;
p=p->next;
}
}
free(L);
if(!positive){
printf("%d\n0.0",negative);
}
else{
printf("%d\n%.1f",negative,sum/positive);
}
}

京公网安备 11010502036488号