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

Формулировка задачи:

В одномерном массиве, состоящем из n целочисленных элементов: • найти сумму элементов, стоящих на позициях, совпадающих с их значением. • отсортировать методом выбора элементы, большие среднего арифметического;
#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");
}
Ребята помогите! Завтра сдавать... т.е. сегодня

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

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");
}
Эта работа вам не подошла?

Вы всегда можете заказать любую учебную работу у наших авторов от 20 руб.

12   голосов, оценка 4.167 из 5


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