Форум программистов, компьютерный форум CyberForum.ru

Одномерный массив - C++

Восстановить пароль Регистрация
 
Pedro_17
0 / 0 / 0
Регистрация: 06.02.2012
Сообщений: 50
06.02.2012, 10:40     Одномерный массив #1
В одномерном массиве состоящем из n вещественных элементов, вычислить:
1) количество элементов массива равных 0.
2)сумму элементов массива, расположенных после минимального элемента. Упорядочить элементы массива по возрастанию модулей элементов.

Сделать нужно на C, помогите пожалуйста.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.02.2012, 10:40     Одномерный массив
Посмотрите здесь:

C++ Одномерный массив
одномерный массив C++
Одномерный массив C++
C++ Одномерный массив
C++ одномерный массив
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5947 / 5552 / 1784
Регистрация: 18.12.2011
Сообщений: 14,184
Завершенные тесты: 1
06.02.2012, 12:51     Одномерный массив #2
ну, например 1 пункт:
C
1
2
3
4
5
6
7
8
#define n 5
int main()
{
    double a[n]={5.,0,0,1.5,2.};
    int count=0,i;
    for(i=0;i<n;i++)
       if(a[i]==0)count++;
}
остальное - аналогичным способом
panicwassano
590 / 558 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
06.02.2012, 13:07     Одномерный массив #3
сумма после минимального элемента
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream>
#include <cmath>
#include <conio.h>
 
 
using namespace std;
 
 
int main()
{
    const int Len = 8;
    double arr[Len] = {1.4, 8.7, 2.1, 4.6, 1.2, 6.3, 7.1, 4.3};
 
    double min = arr[0];
    int start = 0;
    for (int i = 0; i < Len; ++i)
    {
        if (arr[i] < min)
        {
            double temp = min;
            min = arr[i];
            arr[i] = temp;
            start = i + 1;
        }
    }
 
    double sum = 0;
    for (start; start < Len; ++start)
    {
        sum += arr[start];
    }
 
 
 
    cout << min << ", " << sum << endl;
//  while(!kbhit());
    return EXIT_SUCCESS;
}
gooseim
Эксперт C++
500 / 404 / 35
Регистрация: 23.09.2010
Сообщений: 1,139
06.02.2012, 13:26     Одномерный массив #4
Не увидел, что на си, но раз уж сделал, напишу.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <algorithm>
#include <iterator>
 
int main()
{
   double arr[] = {10, 0, -3, 4, 2.5};
   
   size_t cnt = std::count(arr, arr+sizeof(arr)/sizeof(arr[0]), 0);
   
   std::cout << "count zero: " << cnt << std::endl;
   
   double sum = std::accumulate(std::min_element(arr, arr+sizeof(arr)/sizeof(arr[0]))+1, 
      arr+sizeof(arr)/sizeof(arr[0]), 0.0);
      
   std::cout << "sum after min: " << sum << std::endl;
   
   std::sort(arr, arr+sizeof(arr)/sizeof(arr[0]), [](double val1, double val2){return std::fabs(val1) < std::fabs(val2);});
   
   std::copy(arr, arr+sizeof(arr)/sizeof(arr[0]), std::ostream_iterator<double>(std::cout, " "));   
}
Pedro_17
0 / 0 / 0
Регистрация: 06.02.2012
Сообщений: 50
06.02.2012, 13:29  [ТС]     Одномерный массив #5
Спасибо народ, что откликнулись, но мне надо на просто C.
gooseim
Эксперт C++
500 / 404 / 35
Регистрация: 23.09.2010
Сообщений: 1,139
06.02.2012, 14:51     Одномерный массив #6
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <math.h>
#include <stdio.h>
 
int main()
{
   double arr[] = {10, 0, -3, 4, 2.5};
   
   const size_t cnt = sizeof(arr) / sizeof(arr[0]);
   
   size_t i, j;
   
   double count = 0, *min;
   
   for(i=0;i<cnt;i++)
      if(!arr[i]) count++;
      
   printf("count: %f\n", count);
   
   min = arr;
 
   for (i = 0; i < cnt; ++i)
   {
      if (arr[i] < *min)
      {
         min = arr + i;
      }
   }
   
   ++min;
   
   count = 0;
   
   for(;min < arr+cnt; ++min)
      count+=(*min);
      
   printf("sum: %f\n", count);
   
   for (i=0;i<cnt;i++)
    for (j=0; j<cnt-i-1;j++)
        if (fabs(arr[j]) > fabs(arr[j+1])) 
        {
           double tmp = arr[j];
           arr[j] = arr[j+1];
           arr[j+1] = tmp;
        }
   
    for (i=0; i<cnt ; i++)
       printf("%f ", arr[i]);
 
    return 0;
}
Yandex
Объявления
06.02.2012, 14:51     Одномерный массив
Ответ Создать тему
Опции темы

Текущее время: 06:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru