Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.05.2011, 21:06   #1
VIKA1829
Пользователь
 
Регистрация: 26.10.2010
Сообщений: 36
По умолчанию обработка массивов

Код:
#include <math.h>
#include <stdio.h>
#include <conio.h>
main()
{
int A[100],B[100],i,min,k,N,count=0;
printf("Vvedite kolichestvo elementov massiva N=");
scanf("%d",&N);
printf("\n");
for(i=0; i<N; i++)
{
printf("Vvedite A[%d]=",i);
scanf("%d",&A[i]);
}
min=A[0];
for(i=1; i<N; i++)
{
if (A[i]<min) {
min=A[i];
k=i;
}
}
for(i=0; i<k; i++)
{
if (A[i]<0) {
A[i]=A[i]-A[i]+9999;
}
}
for(i=0; i<N; i++)
{
if (A[i]<9999) {
B[count]=A[i];
count++;
}
}
printf("\nPezultatu");
for(i=0; i<count; i++)
{
printf("\nA[%d]=%d",i,B[i]);
}
getch();
}
отладить программу,используя функции и передачу массива в нее
как это сделать?
а я просто разрешила такое задание:
В массиве A=(a1, а2, ..., аn) удалить все отрицательные элементы, стоящие перед минимальным элементом массива.
VIKA1829 вне форума Ответить с цитированием
Старый 01.06.2011, 16:09   #2
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

Код:
#include <stdio.h>
#include <stdlib.h>

int minindex(int *Array);

void printArray(int *Array);

int main()
{
    int n, m, index, count, j;
    printf("Введите количество элементов массива:\n");
    scanf("%d", &n);
    int *ArrayA = (int*)calloc(n, sizeof(int));
    for (int i = 0; i < n; i++)
    {
        printf("Введите %d-й элемент массива: ", i + 1);
        scanf("%d", &ArrayA[i]);
    }
    printf("\n\nВведенный массив:\n");
    printArray(ArrayA);
    index = minindex(ArrayA);
    count = 0;                              // Количество отрицательных элементов перед минимальным элементом массива
    for (int i = 0; i < index; i++)
        if (ArrayA[i] < 0)
            count++;

    int *ArrayB = (int*)calloc(n - count, sizeof(int));
    j = 0;
    for (int i = 0; i < n; i++)
        if (ArrayA[i] >= 0 || i >= index)    // Если элемент неотрицательный или он находится не до минимального элемента
            ArrayB[j++] = ArrayA[i];
    printf("\n\nПолученный массив:\n");
    printArray(ArrayB);
}

int minindex(int *Array)
{
    int index = 0;
    for (int i = 1; i < sizeof(Array) / sizeof(Array[0]; i++)
        if (Array[i] < Array[index])
            index = i;
    return index;
}

void printArray(int *Array)
{
    for (int i = 0; i < sizeof(Array) / sizeof(Array[0]; i++)
        printf("%d  ", Array[i]);
    printf("\n");
}
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062

Последний раз редактировалось Mandrivnyk; 01.06.2011 в 18:18.
Mandrivnyk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
обработка одномерных массивов!!!!!! Mr0max Паскаль, Turbo Pascal, PascalABC.NET 4 23.05.2011 16:58
Обработка массивов Юлёна Паскаль, Turbo Pascal, PascalABC.NET 1 15.03.2011 22:01
обработка массивов vvioleta Помощь студентам 1 14.11.2009 13:10