Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [С]В одномерном массиве, состоящем из n целочислен


Автор: Daremez 31.1.2012, 22:46
В одномерном массиве, состоящем из 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");
}

Ребята помогите!
Завтра сдавать...

Автор: darkart 1.2.2012, 02:23
Лучше потестить...
Код

#include<stdio.h>

#define ARRAY_DIM 7

int main( int argc, char* argv[] )
{
    int arr[ ARRAY_DIM ];
    int i, sum, minPos, currentPos, temp;
    float avg;

    printf( "Array with %d elements?\n", ARRAY_DIM );

    for( i = 0; i < ARRAY_DIM; ++i )
        scanf( "%d", &arr[ i ] );

    printf( "Source array:\n" );

    for( i = 0; i < ARRAY_DIM - 1; ++i )
        printf( "%d ", arr[ i ] );
    printf( "%d\n", arr[ ARRAY_DIM - 1 ] );

    sum = 0;

    for( i = 0; i < ARRAY_DIM; ++i)
    {
        if( arr[ i ] == i )
            sum += i;
    }

    printf( "Sum = %d\n", sum );

    sum = 0;

    for( i = 0; i < ARRAY_DIM; ++i )
        sum += arr[ i ];

    avg = ( float )sum / ARRAY_DIM;

    minPos = 0;

    while( minPos < ARRAY_DIM )
    {
        while( minPos < ARRAY_DIM && arr[ minPos ] <= avg )
            ++minPos;
        if( minPos < ARRAY_DIM )
        {
            currentPos = minPos;

            for( i = minPos + 1; i < ARRAY_DIM; ++i )
            {
                if( arr[ i ] > avg && arr[ i ] < arr[ currentPos ] )
                    currentPos = i;
            }

            temp = arr[ minPos ];
            arr[ minPos ] = arr[ currentPos ];
            arr[ currentPos ] = temp;
        }
        ++minPos;
    }

    printf( "Sorted array:\n" );

    for( i = 0; i < ARRAY_DIM - 1; ++i )
        printf( "%d ", arr[ i ] );
    printf( "%d\n", arr[ ARRAY_DIM - 1 ] );

    return 0;
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)