Как задать условие для подсчета суммы элементов массива с парным индексом - C (СИ)

  1. 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 #include <stdio.h> #include <stdlib.h> int main() {     int a,b,c;     printf("vvedit a:");     scanf("%d",&a);     printf("vvedit b:");     scanf("%d",&b);     printf("vvedit kilkist elementiv masivu:");     scanf("%d",&c);     int i,m[c],n=0;     printf("Danii masiv:\n");     for(i=0;i<c;i++)     {         m[i]=rand()%(a+b-1)-a+1;         printf("%4d",m[i]); // здесь нужно задать условие для подсчета суммы элементов с парным индексом         if           }     printf("\n suma elementiv z parnum indeksom:%d",n);     return 0; }


textual

Код к задаче: «Как задать условие для подсчета суммы элементов массива с парным индексом - C (СИ)»

if((i & 1) == 0) sum+=array[i];

СДЕЛАЙТЕ РЕПОСТ

10   голосов, оценка 4.300 из 5



Похожие ответы
  1. Есть bstInsert, PKL и bstRemoveC1 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 81 82 83 84 85 int main(void) {     int i, maxBFS;     char cmd[255], arg;     BstNode *root = NULL;       do     {         printf("Введите команду (h - справка):\n");         scanf("%s", cmd);           if (cmd[0] == '+')         {             scanf(" %c", &arg);               if (arg >= 'A' && arg <= 'Z')             {                 bstInsert(&root, arg - 'A');                   printf("Узел %c вставлен\n", arg);             }             else                 printf("Ошибка. Введена недопустимая буква\n");         }         else if (cmd[0] == '-')         {             scanf(" %c", &arg);               if (arg >= 'A' && arg <= 'Z')             {                 if (bstRemove(&root, arg - 'A'))                     printf("Узел %c удален\n", arg);                 else                     printf("Узел %c не найден\n", arg);             }             else                 printf("Ошибка. Введена недопустимая буква\n");         }         else if (cmd[0] == 'p')         {             PKL(&root, 0);         }                 else if (cmd[0] == 't')         {printf("HI\n");}                 else if (cmd[0] == 'h')         {             printf("================================\n");             printf("Список команд:\n");             printf("+ CHAR - вставить узел CHAR (A, B, ..., Z) в двоичное дерево\n");             printf("- CHAR - удалить узел CHAR из двоичного дерева\n");             printf("p - распечатать двоичное дерево\n");             printf("t - выполнить задание над двоичным деревом\n");             printf("q - завершить программу\n");             printf("================================\n");         }         else if (cmd[0] != 'q')         {             printf("Неизвестная команда\n");         }     }     while (cmd[0] != 'q');       bstDestroy(&root);       return 0; } void PKL(BstNode **node, const int level) {     if (*node == NULL)     {         printf("Дерево пусто\n");           return;     }       if ((*node)->_right != NULL)         PKL(&(*node)->_right, level + 1);       printf("%*s%c\n", level * 2, "", (*node)->_key + 'A');       if ((*node)->_left != NULL)         PKL(&(*node)->_left, level + 1); }C1 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 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 BstNode *bstInsert(BstNode **node, const kLetters key) {     if (*node == NULL)     {         *node = (BstNode *)malloc(sizeof(BstNode));           (*node)->_key = key;         (*node)->_left = NULL;         (*node)->_right = NULL;           return *node;     }     else if ((*node)->_key == key)         return *node;     else if (key < (*node)->_key)         return bstInsert(&(*node)->_left, key);     else         return bstInsert(&(*node)->_right, key); }     int bstRemove(BstNode **node, const kLetters key) {     BstNode *repl = NULL, *parent = NULL, *tmp = *node;       while (tmp != NULL && tmp->_key != key)     {         parent = tmp;           if (key < tmp->_key)             tmp = tmp->_left;         else             tmp = tmp->_right;     }       if (tmp == NULL)         return 0;       if (tmp->_left != NULL && tmp->_right == NULL)     {         if (parent != NULL)         {             if (parent->_left == tmp)                 parent->_left = tmp->_left;             else                 parent->_right = tmp->_left;         }         else             *node = tmp->_left;           free(tmp);           tmp = NULL;     }     else if (tmp->_left == NULL && tmp->_right != NULL)     {         if (parent != NULL)         {             if (parent->_left == tmp)                 parent->_left = tmp->_right;             else                 parent->_right = tmp->_right;         }         else             *node = tmp->_right;           free(tmp);           tmp = NULL;     }     else if (tmp->_left != NULL && tmp->_right != NULL)     {         repl = tmp->_right;           if (repl->_left == NULL)             tmp->_right = repl->_right;         else         {             while (repl->_left != NULL)             {                 parent = repl;                 repl = repl->_left;             }               parent->_left = repl->_right;         }           tmp->_key = repl->_key;           free(repl);           repl = NULL;     }     else     {         if (parent != NULL)         {             if (parent->_left == tmp)                 parent->_left = NULL;             else                 parent->_right = NULL;         }         else             *node = NULL;           free(tmp);           tmp = NULL;     }       return 1; }   void bstDestroy(BstNode **node) {     if (*node == NULL)         return;       if ((*node)->_left != NULL)         bstDestroy(&(*node)->_left);         if ((*node)->_right != NULL)         bstDestroy(&(*node)->_right);       free(*node);       *node = NULL; }все это для C1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 typedef enum _kLetters {     A = 0, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z } kLetters;   typedef struct _BstNode {     kLetters _key;     struct _BstNode *_left;     struct _BstNode *_right; } BstNode;   BstNode *bstInsert(BstNode **node, const kLetters key); int bstRemove(BstNode **node, const kLetters key); void bstDestroy(BstNode **node);А нужно тоже самое дляC1 typedef char _kLetters

  1. Помогите задать условие для смены диагоналей

  1. Доброго времени суток, долго мучался с двумерным массивом и его упорядочиванием, в конце концов что то получилось, матрицу выводит, но считает не верно, ещё и после упорядочивания выводит матрицу не 8х8, а 7х10 с неполной последней строкой, подскажите, пожалуйста, в чём я ошибся?C1 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 #include #include #include   #define MIN_VALUE -100 #define MAX_VALUE 100   #define ROWS    8 #define COLS    8   int main(int argc, char **argv) {     setlocale(LC_ALL, "RUSSIAN");       int A[8][8];     int i, k, n,t;     n = 8;       printf("Матрица до сортировки\n");     for (i = 0; i < ROWS; ++i)     {         for (k = 0; k < COLS; ++k)         {             A[i][k] = rand() % 50-25;//заплнене случайным числами             printf("%d\t", A[i][k]);         }         printf("\n");   // каждую строку матрицы выводим на новой строке     }       for(i = 0; i

  1. Наверное, сильно туплю. Я хочу вывести содержимое бинарного файла по одной записи. вот мой цикл:C1 2 3 4 5 6 while (fread(¤t_company, size_of_company, 1, inp1)!=feof(inp1))     {         printf("%-20s %10d %20.3f\n",current_company.name, current_company.year, current_company.capital);         i++;         fseek(inp, i*size_of_company,SEEK_SET);     }

  1. Как задать размер массива с клавиатуры? Гуглил, ничего толкового не нашел :| Пример: Ввести массив вещественных чисел размером n, n вводится с клавиатуры. Найти его наибольший и наименьший элементы и поменять их местами.

  1. Доброго времени суток. Пытаюсь написать программу, в которой нужно будет сначала задать количество столбцов матрицы, а затем вводить строки до тех пор, пока все числа в последней не будут делиться на 3. Ввод матрицы реализовать смог, проверку делимости последней строки на тройку тоже реализовал. Однако не могу придумать способ реализации остановки ввода при условии, что последняя введённая пользователем строка делится на 3. Буду благодарен за идеи.C1 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 #include "stdafx.h" #include #include #include int main() {       int *a;  // указатель на массив     int i, j, n, m;           bool needbrake;       int r, s, k;     s = 3;     k = 0;       printf("Quantity of strings: ");     scanf_s("%d", &n);     printf("Quantity of columns: ");     scanf_s("%d", &m);     // Выделение памяти     a = (int*)malloc(n*m * sizeof(int));     // Ввод элементов массива     for (i = 0; i < n; i++)  // цикл по строкам         {             for (j = 0; j < m; j++)  // цикл по столбцам             {                 printf("a[%d][%d] = ", i, j);                 scanf_s("%d", (a + i*m + j));             }         }           //тут проверка на делимость     for (j = 0; j < m; j++)     {         r = a[(n - 1), j];         if (r%s == 0)             k = k + 1;     }     if (k == m) printf("poslednyaya stroka delitsa na 3:");     else {         printf("ne delitsa na 3:");       }     if (k == m) needbrake = true;                 // Вывод элементов массива             for (i = 0; i < n; i++)  // цикл по строкам             {                 for (j = 0; j < m; j++)  // цикл по столбцам                 {                     printf("%5d ", *(a + i*m + j)); // 5 знакомест под элемент массива                 }                 printf("\n");             }         free(a);         getchar();   getchar();                 return 0; }

  1. C1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 #include #include #include int main(int argc, char *argv[]) { float a,c,b,x,y,q,s; b=-0.3; a=2.8; c=4; //x=0.1; s=1; for (x=1;x<=10;x++){ s+=0.1; if (s<1.2) { q=a*s*s+b*s+c; } else if(s=1.2) { q=a/s+sqrt(s*s+1); } else { q=a+b*s/sqrt(s*s+1); } printf("y=%f\n",q); printf("x=%f\n",s); printf("==========\n"); } return 0; }Не могу понять в чем проблема.s больше 1.2 не идет.Но цикл идет дальше.

  1. При выводе массива на экран,чтобы не получалось вот так например,а было ровненькими столбцами.Ограничить,ну допустим,шестью элементами в одной строке экрана.

  1. Ввести с клавиатуры число n. Динамически выделить память для массива целых чисел размером n. Заполнить массив данными с клавиатуры. Вывести на экран все элементы массива аi, для которых выполняется условие ai-1*<*ai*>*ai+1. Не работает, помогите:C1 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 #include #include int main() {     int *a, i, n, k;     system("chcp 1251");     system("cls");     printf("Введите количество элементов массива: ");     scanf_s("%d", &n);     a = (int*)malloc(n*sizeof(int));     for (i = 0; i < n; i++) {         printf("a[%d]= ", i);         scanf_s("%d", &a[i]);     }     k = 0;     for (i = 0; i < n; i++)     {         if (a[i - 1]a[i + 1])         {             k = a[i];         }       }     printf("%d\n", k);     getchar(); getchar();     return 0; }

  1. C++1 2 3 if (a % 2 = 0) & (a / 100 < 1) {         printf("True"); }Возможно ли такое условие?