Найти сумму элементов массива, стоящих на позициях, совпадающих с их значением - C (СИ)

  1. В одномерном массиве, состоящем из n целочисленных элементов: • найти сумму элементов, стоящих на позициях, совпадающих с их значением. • отсортировать методом выбора элементы, большие среднего арифметического;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 #include <stdio.h> int main() {     int i,j,r,n = 10;     int a[10] = {1,5,2,8,6,2,4,6,9};     int b[10];     int b_count = 0;     int sum=0;         int avg=0;     for(i=0;i < n;i++)         {             sum=sum + a[i];         }     avg=sum/n;     printf("avg %d, \n",avg);     for(i=0;i<n;i++)     {         if(a[i]=i)sum=sum + a[i];         if(a[i]>avg){b[b_count]=a[i]; b_count++;}     }     printf("sum %d, \n",sum);     for(i=0;i<b_count;i++)     {         int min=i;          for(j=i+1;j<r;j++){              if( b[j]<b[min])                  min=j;              }              if(min!=i){              sum = b[i]; b[i]=b[min]; b[min]=sum;}       }     for(i=0;i<b_count;i++)     printf("%d,",b); printf("\n"); }Ребята помогите! Завтра сдавать... т.е. сегодня


textual

Код:

#include <stdio.h>
 
int main()
{
    int r; 
    const int n = 9;
 
    int a[n] = { 1, 5, 2, 8, 6, 2, 4, 6, 9 };
 
    int b[n] = {0};
 
    int b_count = 0;
 
    int sum = 0;   
 
    int avg = 0;
 
    for(int i = 0; i < n; i++) 
    {
        sum = sum + a[i]; 
    }
 
    avg = sum / n;
 
    printf("avg =  %d \n", avg);
 
    sum = 0;
    printf("Neotsortirovannyi massiv: ");
    for(int i = 0; i < n; i++)
    {
        if(a[i] == i)
            sum = sum + a[i];
 
        if(a[i] > avg)
        {
            b[b_count] = a[i]; 
            printf("\t %d", b[b_count]);
            b_count++;
        }
    }
 
    printf("\nsum = %d \n", sum);
 
    for(int i = 0; i < b_count - 1; i++)
    {
        int min = b[i];
        for(int j = i + 1; j < b_count; j++)
        {
            if(min > b[j])
            {
                sum = b[i];
                min = b[j];
                b[j] = sum;
                b[i] = min;
            }
        }
    }
    printf("\nSortirovanniu massiv: \t");
    for(int i = 0; i < b_count; i++)
    {
        printf("%d\t", b[i]);
    }
printf("\n");
}


Похожие ответы
  1. Задана последовательность из N вещественных чисел. Определить сколько чисел меньше K, равно K и больше K. (массив random )

  1. Добрый вечер! Дан массив M*N. Необходимо отсортировать ее по строкам так, чтобы вначале шли все положительные элементы, отсортированные по убыванию, а затем все остальные, отсортированные по возрастанию (если в строке имеются нули - переставить их в конец строки). Вывести получившуюся матрицу. У меня проблема с перестановкой нулей. 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 #include     int main()     {   int N, M,t, i,j,k, mas[10][10]={0}, q;         printf("VVEDITE N,M \n");     scanf("%d%d", &N,&M);     printf("VVEDITE MASSIV \n");       for (i=0; i < N; i++)        for (j=0; j < M; j++)            scanf ("%d", &mas[i][j]);       for(k = 0; k < N; k++){     for(i = 0 ; i < M; i++){         for(j = i + 1; j < M; j++){               if((mas[k][i] < mas[k][j]) && (mas[k][i]!=0)){                       t = mas[k][i];                     mas[k][i] = mas[k][j];                     mas[k][j] = t;               }         }     } }   if (mas[i][j]<0) {     } {   for(k = 0; k < N; k++){         for(i = 0 ; i < M; i++){             for(j = i + 1; j < M; j++){                   if(mas[k][i] < mas[k][j]) {                       t = mas[k][i];                     mas[k][i] = mas[k][j];                     mas[k][j] = t;               }         }     } } } for(i = 0 ; i < M; i++)     {         for(j = 0; j < M; j++)             if (mas[i][j]==0)         {                 for ( q = j; q < N-1 ; q++)                 {                     mas[i][q] = mas[i][q + 1];                 }                 mas[N-1][M-1] = 0;           }     }   for (i=0; i < N; i++)        {for (j=0; j < M; j++)               printf ("%d\t", mas[i][j]);        printf (" \n");}   getch();}

  1. Сформировать массив из элементов исходных массивов, больших второго элемента первого массива и положительных элементов второго массива. Требуется сформировать новый массив по заданию. В программе реализовать: 1) генерацию случайным образом элементов исходных массивов; 2) выполнение действия в соответствии с условием задачи; 3) порядок вывода: • исходные массивы, • сформированный массив, если он был сформирован. В противном случае – соответствующее сообщение. Помогите, а то не могу сделать

  1. Найти максимальный элемент и поменять его местами с последним элементом массива. В программе предусмотреть и реализовать: 1) генерацию элементов исходного массива с помощью датчика случайных чисел; 2) выполнение в соответствии с условием задачи; 3) порядок вывода: • исходный массив, • максимальный или минимальный элемент массива и его номер, • массив, полученный в результате выполнения задания.

  1. Заполнить одномерный массив случайными числами. Вывести на экран все элементы массива, являющимся двухзначными числами. Буду благодарен)))

  1. Заполнить одномерный массив вводом с клавиатуры. Выяснить верно ли что сумма элементов массива есть чётное число.

  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 #include #include #include #include #include #include #define N 500 #define MIN 80 int main(void) { setlocale (0, "rus"); int a[N],n,i, min=a[0], nummin=0, sum=0, nol=0, k; srand((unsigned)time(NULL)); printf ( " Определите характер заполнения: 1- автоматическое, 2- вручную"); printf("\n"); scanf("%d",&k);   switch(k) { case 1: { printf("vvedite n - "); scanf("%d",&n); for (i=0; ia[i])           {               printf("\n");               min=a[i];              nummin=i;}         for (i=nummin+1; i

  1. Добрый вечер! Не подскажите где ошибка? При запуске программы вылезает окно с ошибкой. Вроде часть где массив заполняется верна. Само задание: В заданном массиве A[N][N] найдите суммы элементов в каждой строке. Сформируйте одномерный массив S[N], содержащий полученные суммы, расположенные в порядке возрастания.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 #define _CRT_SECURE_NO_WARNINGS #include #include #include int main() {   int **a;  // указатель на массив   int n,sum ;   printf("Enter n: ");     scanf("%i", &n);    int i=0, j=0;     a = (int**)malloc(n * sizeof(int));   // Ввод элементов массива   for (i = 0; i

  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 #include   main() {       int A[10][10],i,j,n,m,S=0;     printf("Razmer stroki:");     scanf("%d",&n);     printf("Razmer stolba:");     scanf("%d",&m);     for(i=0;i

  1. Написать программу вывода элементов одномерного массива при наличии чисел заглушек и с правильным порядком индексации C1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 #include #include     int main(){     int a[10] = {-1, 7, 1, 3, 1, -1, 4, -1, 6, 5 };   int  i = 0;               for(i = 0; i < sizeof(a)/ sizeof(*a); ++i)            if (a[i] != -1 )    printf ("a[%d]= %d\n", i, a[i]);    return 0; }Помогите вывести правильную индексацию массива