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


Автор: Гусь 13.3.2007, 13:05
Напишите пожалуйста консольную программу.
Заменить отрицательные элементы линейного массива их модулями, не пользуясь стандартной функцией вычисления модуля. Подсчитать колличество произведенных замен.

Автор: Rodman 13.3.2007, 13:19
Код

#include <stdio.h>
void main(void)
{
       int a[100],i,j;
       for (i=1;i<20;i++)
      {
          printf("Vvedite element");
          scanf("%i", a[i]);
      }  
      j=0;
      for (i=1;i<20;i++)
      {
          if(a[i]<0)
          {
             a[i]=sqrt(a[i]*a[i]);
             j++;
           }
      } 
      printf("Col-vo elementov < 0 = %i", j);
      getch();
}

Автор: Fazil6 13.3.2007, 13:21
Код



#include <stdio.h>


int main()  
{
    int array[] = {-1,-2,-3,-4,-5, 8,5,4,3,-9,2};
    
    int arsize = sizeof(array)/sizeof(int);

    unsigned int zamen = 0; 
    while(arsize--)
    {
        if(array[arsize ] < 0) 
        {
            array[arsize ] *= -1;
            ++zamen;
        }
        
        printf("%d  ", array[arsize]);
    }

    printf("\nzamen : %d\n" , zamen); 
    return 0;

}

Автор: Гусь 13.3.2007, 13:50
Большое спасибо всем

Автор: Гусь 14.3.2007, 14:41
Цитата(Rodman @ 13.3.2007,  13:19)
Код

#include <stdio.h>
void main(void)
{
       int a[100],i,j;
       for (i=1;i<20;i++)
      {
          printf("Vvedite element");
          scanf("%i", a[i]);
      }  
      j=0;
      for (i=1;i<20;i++)
      {
          if(a[i]<0)
          {
             a[i]=sqrt(a[i]*a[i]);
             j++;
           }
      } 
      printf("Col-vo elementov < 0 = %i", j);
      getch();
}

Здесь ошибка при компилирование и в коде стрелка показывает на строчку scanf("%i", a[i]);

Добавлено @ 14:44 
Цитата(Fazil6 @ 13.3.2007,  13:21)
Код



#include <stdio.h>


int main()  
{
    int array[] = {-1,-2,-3,-4,-5, 8,5,4,3,-9,2};
    
    int arsize = sizeof(array)/sizeof(int);

    unsigned int zamen = 0; 
    while(arsize--)
    {
        if(array[arsize ] < 0) 
        {
            array[arsize ] *= -1;
            ++zamen;
        }
        
        printf("%d  ", array[arsize]);
    }

    printf("\nzamen : %d\n" , zamen); 
    return 0;

}

А здесь программа копилируется и сразу закрывается, не пойму в чем тут дело, пытался корректировать но чето не пашет.

Автор: susanin 14.3.2007, 14:46
походу студенту задали кучу лаб, а сам он даже не пробовал  книгу открывать... задачи первого курса программирования на си....

Автор: Гусь 14.3.2007, 17:09
Почему же я сам несколько программ сделал, тока с этими прогами гемор.

Автор: Dov 14.3.2007, 17:22
Цитата(Гусь @  14.3.2007,  13:41 Найти цитируемый пост)
Здесь ошибка при компилирование и в коде стрелка показывает на строчку scanf("%i", a[i]);

Нужно &a[i]

Цитата(Гусь @  14.3.2007,  13:41 Найти цитируемый пост)
А здесь программа копилируется и сразу закрывается, не пойму в чем тут дело,

В конце перед return добавь getchar();


Автор: Гусь 15.3.2007, 18:27
Dov спасибо.

Добавлено @ 18:35 
 smile 

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