Консультация № 69487
04.01.2007, 09:59
0.00 руб.
0 2 2
Всем привет.
Мне на С нужен кусок кода, для того чтобы в списке целых чисел подсчитать количество отрицательных элементов и их сумму. А также ручной и автоматический ввод этого самого списка целых числе.

Обсуждение

Неизвестный
04.01.2007, 10:37
общий
это ответ
Здравствуйте, POSTAL!

Попробуйте код в приложении

Если нужен ручной ввод то замените

for(i=0; i<size; i++)
A[i] = rand()%100;

for(i=0; i<size; i++)
if(rand()%2)
A[i] = -A[i];

на

for(i=0; i<size; i++)
scanf("%d", &A[i]);


Приложение:
#include <stdio.h>#include <stdlib.h>int main(int argc, char* argv[]) { const int size = 10; int A[size]; int summ = 0; int count = 0; int i; for(i=0; i<size; i++) A[i] = rand()%100; for(i=0; i<size; i++) if(rand()%2) A[i] = -A[i]; for(i=0; i<size; i++) { if(A[i]<0) { summ += A[i]; count++; } } printf("Initial array:\n"); for(i=0; i<size; i++) printf("%d ", A[i]); printf("Count of negative element: %d\nSumm of negative element: %d\n", count ,summ); return 0;}
Неизвестный
04.01.2007, 14:25
общий
это ответ
Здравствуйте, POSTAL!
Вот еще как вариант.
Удачи

Приложение:
#include <stdio.h>#include <conio.h>#include <stdlib.h>int main(){ char ans; int i; int *array=NULL; /*array pointer to be (we deal with dynamic array)*/ int count=0; /*array size*/ int negcount=0; /*total number of negative values*/ int negsum=0; /*total sum of negative values*/ puts("wanna enter values by hand? (y/n)"); scanf("%c",&ans), fflush(stdin); if(ans==‘y‘||ans==‘Y‘) { do { ++count; array = (int*)realloc(array,count*sizeof(int)); printf("enter %d element: ",count); scanf("%d",array+count-1), fflush(stdin); printf("more? (y/n)"); scanf("%c",&ans); } while(ans==‘y‘||ans==‘Y‘); } else { puts("what size?"); scanf("%d",&count), fflush(stdin); array = (int*)malloc(count); randomize(); for(i=0; i<count; ++i) array[i]=random(500)-250; } puts("initial array:"); for(i=0; i<count; ++i) { printf("%3d ",array[i]); if(array[i]<0) { ++negcount; negsum+=array[i]; } } printf("\nnegative values count = %d\n",negcount); printf("sum of negative values = %d\n",negsum); if(array) free(array); getch(); return 0;}
Форма ответа