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

Найти сумму элементов массива с нечетными номерами - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ работа с двумерными массивами http://www.cyberforum.ru/cpp-beginners/thread273984.html
Здравствуйте, нужна помощь переделать программу под условие (смотреть пр. файл) :( Задание: Дана прямоугольная матрица Определить: 1. количество столбцов, не содержащих ни одного нулевого элемента 2. сумма положительных четных элементов каждой строки
C++ ОБНУЛЯЕТСЯ ДРОБНАЯ ЧАСТЬ ПРИ СОРТИРОВКЕ МАССИВА!!! Массив B сформировать по правилу b = sqrt(fabsf(i * i - a)), где a=25.8. Найти сумму элементов с номерами с 5-го по 10-ый, упорядочить эти элементы по убыванию и найти произведение элементов Bi < 8.5. Все я сделал, но почему-то при сортировке массива дробная часть обнуляется. Почему так происходит? #include "stdafx.h" #include "iostream" #include "conio.h" #include "stdlib.h" #include... http://www.cyberforum.ru/cpp-beginners/thread273962.html
C++ Модификация записи в файле структур
Необходимо удалить запись из произвольной точки файла. Написал код: void delete_record() { SONG tmp; // #define SONG_SIZE sizeof(SONG) long delete_item_pos = (current_start + (current_line -3 ) / 2) * SONG_SIZE; long next_item = delete_item_pos + SONG_SIZE; if (delete_item_pos < file_size * SONG_SIZE) { while (next_item < (file_size * SONG_SIZE)) {...
Разработать тип данных graf, определив для него операции добавления и вычитания C++
помогите срочно нужно!!! разработать тип данных graf, определив для него операции добавления и вычитания!!
C++ Класс-Контейнер Вектор http://www.cyberforum.ru/cpp-beginners/thread273950.html
Вставить новый элемент после всех элементов, кратных своему номеру
C++ как переделать? нужно как-то зделать тоже самое только методом касательных. #include<stdio.h> #include<conio.h> #include<math.h> float function(float x) { float h; подробнее

Показать сообщение отдельно
CEBEP
105 / 105 / 9
Регистрация: 21.03.2010
Сообщений: 437
10.04.2011, 23:47     Найти сумму элементов массива с нечетными номерами
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
/*
H - сумма элементов массива с нечетными номерами
E - максимальный по модулю элемент массива
G - Количество отрицательных элементов массива
 
(H+E/(H+1))*G
*/
 
#include <stdio.h>
#include <math.h>
#include <iostream>//судя по тому что библиотека подключена, элементы с++ таки вам преподаются, почему бы её не использовать?
#include <conio.h>
 
int main()
{
 
    FILE  *out;
    int i,n,k,
        H,E,G,
        p;
    float X;
    printf("Vvedite chislo elementov v massive: ");
    scanf("%i",&n);
 
    /*int b[n]; очень удивила строка. Если не понимаете почему это ошибка обязательно что-нибудь почитайте*/
    int *b = (int*)malloc( n * sizeof(int));//malloc это сишное, если у вас таки с++ или хотябы его элементы, используй операции new и delate, в данном случае int *b = new int[n]; и delete[] n;
    //Назвали б массив как-нибудь поважнее...
    //malloc - настолько устарела что по современным стандартам её использовать - вообще не вариант. и прямое использование int *b = malloc( n * sizeof(int)) протсо не компилируется. необходимо указять явное приведение к типу.
 
    printf("Vvedite %i element(a)(ov) massiva:\n",n);//порадовал интерфейс
    for (i = 0; i < n; ++i)//++i выполняется немного быстрее чем i++
        scanf("%i",&b[i]);
 
    printf("\n\nNachal'niy massiv: ");
    for(i=0; i < n; ++i)
        printf("%i ", b[i]);
 
 
    H=0; 
    for (i = 1; i < n; ++(++i))//это намного прикольнее чем i+=2, да и выполняется, наверняка, быстрее
        H += b[i];
    printf("\nSumma elementov massiva s nechetnymi nomerami: \nH=%i",H); 
 
 
    E=b[0];
    for (i = 1; i < n;i++) 
    {
        if (abs(b[i]) > abs(E))
            E=b[i];
    }
    printf("\nMaksimal'nyi po modulyu element massiva: \nE=%i",E); 
 
 
    G=0;
    for (i = 0;i < n; i++) 
    {
        if (b[i] > 0) 
            ++G;
    }
    printf("\nKolichestvo polojitel'nix elementov massiva: \nG=%i",G);//в задание которое написано в посте написано что интересуют отритцательные
 
 
    X = ( H + E / ( H + 1 ) ) * G;//Подобные варажения, как правило - продукт объёмного анализа, из уважения пишите всё через пробел, да и боьлшинству чистать приятнее
    printf("\nVyrajenie: \n(H+E/(H+1)*G=%f",X); 
 
 
    out=fopen("text_out1.txt","w");
    printf("\n\nVvedite '1', esli xotite v file?");//исправил слово "Najmite"
    scanf("%d",&p);
    if(p==1)
        fprintf(out,"Число элементов в массиве = %i \nСумма элементов массива с нечетными номерами H=%d \nМаксимальный по модулю элемент массива E=%d \nКоличество положительных элементов масива G=%d\nВыражение (H+E/(H+1)*G = %f",n,H,E,G,X);//а фы файл видели
    fclose(out);
    //ещё б сообщение о том что данные сохранены...
 
    free(b);
 
    getch();
    return 0;
}
//поройтесь, есть методы избежать мороки с транслитом)) я в своё время сам написал функцию нормально выводящую русский текст
Добавлено через 2 минуты
пожалуйста, почитайте коменты в коде...
 
Текущее время: 09:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru