Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Количество элементов массива (http://www.tehnari.ru/f41/t51993/)

геймер555 21.05.2011 12:12

Количество элементов массива
 
Задача :в одномерном массиве, состоящем из n вещественных элементов, вычислить:
1) количество элементов массива, меньших 0;
2) сумму целых частей элементов массива, расположенных после последнего отрицательного элемента.
Преобразовать массив таким образом, чтобы сначала располагались все элементы, отличающиеся от максимального не более чем на 20%, а потом - все остальные.

Я ее решил, но нужно сделать через функции.

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
float x[100];
int main(int argc, char *argv[])
{
float c, a, s1, sp, otr_element, max_element;
int i, imin, n, b, p, k, s;
printf("Vvedite kolichestvo el-tov massiva: ");
scanf("%d",&n);
for(i = 0; i < n; i++)
x[i] = ((float)rand()/RAND_MAX)*20 - 10;
for(i = 0; i < n; i++)
printf("x[%d] = %7.4f\n",i,x[i]);
printf("\n\nVvedite C: ");
scanf("%f",&c);
for(i = 0, p = 0; i < n; i++) {
if(x[i] < c) p++;
}
printf("1) Kolichestvo elementov masiva menshe C ravno %d\n\n",p);
getch();
for(i = 0; i < n; i++)
if(x[i] < 0) imin = i;
for(s=0; i<n; i++)
s += (int)x[i];
for(i = imin + 1, s = 0.0; i < n; i++)
s += (int)(x[i]);
printf("2) Summa chelih chastei, posle poslednego otr. elementa = %d\n\n",s);
getch();
max_element = x[0];
for(i = 1; i < n; i++) {
if(x[i] > max_element) max_element = x[i];
}
for(i = 0; i < n; i++) {
if((x[i] >= s1)&&(x[i] <= max_element)) {
for(k = 0; k < n; k++) {
if(x[i] > x[k]) {
a = x[i];
x[i] = x[k];
x[k] = a;
}
}
}
printf("Posle sortirovki elementov\n");
for(i = 0; i < n; i++)
x[i] = ((float)rand()/RAND_MAX)*20 - 10;
for(i = 0; i < n; i++)
printf("x[%d] = %7.4f\n",i,x[i]);
return 0;
}
}

Помогите пожалуйста!


Часовой пояс GMT +4, время: 19:27.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.