Количество элементов массива
Задача :в одномерном массиве, состоящем из 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.