Sumowanie elementów tablicy/jezyk c

0

Witam. Program losuje 10 liczb: dla liczb ujemnych przypisuje -1, dla dodatnich 1, a dla zera wartość 0. Mam pytanie, jak zsumować te jedynki i ewentualnie zera?
int main()
{
int a[10],i;
srand(time(NULL));
for(i=0;i<10;i++)
{
a[i]=rand()%21-10;
printf("\n%d",a[i]);

	}
	for(i=0;i<10;i++)
	{
		if(a[i]>0 && a[i]<11)
		printf("\nliczba %d   to: 1",a[i]);
		else
		if(a[i]>-11 && a[i]<0)
		printf("\nliczba %d   to: -1",a[i]);
		else 
		if(a[i]==0)
		printf("\nliczba %d to: 0",a[i]);
	}
	return 0;
}
0

Popraw post: Dlaczego nikt nie odpowiada w moim wątku?

int minusy = 0, plusy = 0, jajeczka = 0;
...
if (a[i] < 0) ++minusy;
if (a[i] > 0) ++plusy;
if (a[i] == 0) ++jajeczka;
0

Dziękuję bardzo za odpowiedź. If'y poprawione, ale niezbyt rozumiem co dalej..

0

Ja też nie wiem co dalej. Pytałeś jak zliczyć (właściwie zsumować, ale rozumiem że chodzi o zliczanie wystąpień) to Ci pokazałem. A co dalej robić z tym to przecież Ci nie wymyślę.

0

Mam na mysli to jak zapisać wynik, bo ciagle wyskakuje mi 10. (mam na myśli sume -1+1+0+(-1)+...=...). Niezbyt jeszcze ogarniam C także, sory jak pytam o takie banały.

1
0204 napisał(a):

... ale niezbyt rozumiem co dalej ...
Dalej wywalić i napisać porządnie.

#include <time.h>
#include <stdio.h>
#include <stdlib.h>

#define size 10
int main()
  {
   int i,a[size],sum[3]={0};
   srand(time(NULL));
   for(i=0;i<size;++i) a[i]=rand()%21-10;
   for(i=0;i<size;++i) printf("%d\n",a[i]);
   printf("\n");
   for(i=0;i<size;++i) printf("liczba %d  to: %d\n",a[i],(a[i]>0)-(a[i]<0));
   for(i=0;i<size;++i) ++sum[1+(a[i]>0)-(a[i]<0)];
   printf("\n");
   printf("Ujemnych %d\n",sum[0]);
   printf("Zerowych %d\n",sum[1]);
   printf("Dodatnich %d\n",sum[2]);
   return 0;
  }

http://ideone.com/5NJgmX

0

int ... sum[3]={0}
.
.
.
++sum[1+(a[i]>0)-(a[i]<0)];

Czy jest bardziej elementarny sposób zapisu tej sumy? Typu sum=a[i]+...

1

Tak, można zamienić to: int sum[3]={0}; ... ++sum[1+(a[i]>0)-(a[i]<0)];
na to: int neg=0,nil=0,poz=0; if(a[i]<0) ++neg; else if(a[i]>0) ++pos; else ++nil;

0

Dziękuję za odpowiedź.

1 użytkowników online, w tym zalogowanych: 0, gości: 1