Одесса: 5°С (вода 9°С)
Киев: 0°С
Львов: 0°С

Тема: Need help with C++ code :)

Ответить в теме
Показано с 1 по 19 из 19
  1. Вверх #1
    Частый гость Аватар для Alexxx
    Пол
    Мужской
    Адрес
    Одесса
    Сообщений
    575
    Репутация
    61

    По умолчанию Need help with C++ code :)

    Расположить столбцы заданной матрицы G1 в порядке убывания значений их минимальных элементов. Преобразованную матрицу напечатать
    Вот замучился я... значит, приведеный ниже код компилится на VS 2003 и VS2006, а на моей 2005 ругается:

    Код:
    #include <iostream>
    #include <stdlib.h>
    #include <math.h>
    #include <time.h>
    using std::cout;
    using std::cin;
    int main()
    {
      int SZ=10;
      srand(time(0));
      double A[10][10], buf;
      int i,j, min;
    
      //zapolnim masiv
      for( i=0;i<SZ;i++)
      {
        for(j=0;j<SZ;j++)
        {
          A[i][j]=(1+rand()%99)*(pow((-1),rand()));
          //cout << A[i][j]<<"\t";
        }
        //cout << "\n";
      }
    
    
      //otsarteruem massiv
    
      for (int p=0;p<SZ;p++)
      {
        for(i=0;i<SZ;i++)
        {
          min=i;
          for(j=i+1;j<SZ;j++)
          if(A[p][j]<A[p][min]) min=j;
          buf=A[p][i];
          A[p][i]=A[p][min];
          A[p][min]=buf;
        }
      }
    
      //vivod massiva
    
    
      for(int p=0;p<SZ;p++)
      {
        for(int z=0;z<SZ;z++)
        {
          cout << A[z][p]<<"\t";
        }
        cout << "\n";
      }
      cout << "\n\n\n";
      cin.get();
      return 0;
    }

    c:\documents and settings\alexey\мои документы\visual studio 2005\projects\projectxxxx\projectxxxx\projectxxxx1 23.cpp(19) : error C2668: 'pow' : ambiguous call to overloaded function
    c:\program files\microsoft visual studio 8\vc\include\math.h(575): could be 'long double pow(long double,int)'
    c:\program files\microsoft visual studio 8\vc\include\math.h(527): or 'float pow(float,int)'
    c:\program files\microsoft visual studio 8\vc\include\math.h(489): or 'double pow(double,int)'
    while trying to match the argument list '(int, int)'

    Помогите плиз, кто знает в чем "собака порылась". Буду мегаблагодарен.


  2. Вверх #2
    Модератор
    Мистер Одесский Форум
    Аватар для maxx™
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    38
    Сообщений
    23,355
    Репутация
    6088
    Может так попробовать:
    A[i][j]=(1+rand()%99)*(pow((double) (-1),rand()));

  3. Вверх #3
    зачем так сложно? сортировка двумерного массива, трех слов хватает!

  4. Вверх #4
    A[i][j]=(1+rand()%99)*(pow((-1.0),rand()));
    так быстрей!
    Последний раз редактировалось Chev'yuk; 27.12.2007 в 22:00.

  5. Вверх #5
    Частый гость Аватар для Alexxx
    Пол
    Мужской
    Адрес
    Одесса
    Сообщений
    575
    Репутация
    61
    Пасиба, все работает уже

  6. Вверх #6
    Ловец Снов Аватар для lexar
    Пол
    Мужской
    Сообщений
    11,535
    Репутация
    7269
    Записей в дневнике
    1
    Забавно.
    В сообщении об ошибке было написано ВСЕ.
    В math существовало две версии pow - для флоата и дабла.
    Автор подсовывал инт.
    Естественно, компилятор не мог понять, какую функцию преобразовать,
    так как оба преобразования допустимы.
    Для того, что бы избавиться от ошибки, достаточно было явного приведения типа.
    По правилам хорошего тона - static_cast.

  7. Вверх #7
    Модератор
    Мистер Одесский Форум
    Аватар для maxx™
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    38
    Сообщений
    23,355
    Репутация
    6088
    Цитата Сообщение от lexar Посмотреть сообщение
    Забавно.
    В сообщении об ошибке было написано ВСЕ.
    В math существовало две версии pow - для флоата и дабла.
    Автор подсовывал инт.
    Естественно, компилятор не мог понять, какую функцию преобразовать,
    так как оба преобразования допустимы.
    Для того, что бы избавиться от ошибки, достаточно было явного приведения типа.
    По правилам хорошего тона - static_cast.
    Уже ж все давно решили, и я ему сразу показал чего делать!

  8. Вверх #8
    Помогите пожалуйста решить вот эти 2 задачки:
    1)http://i009.radikal.ru/0801/19/afed4583ca5c.jpg
    2)Введите массив(array) 11 плавающих(floating) элементов. Вычислите количество элементов от интервала (-5;3] Замените(replace) вторые отрицательные и минимальные элементы.
    Заранее спасибо

  9. Вверх #9
    Модератор
    Мистер Одесский Форум
    Аватар для maxx™
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    38
    Сообщений
    23,355
    Репутация
    6088
    Цитата Сообщение от Bond2008 Посмотреть сообщение
    Заранее спасибо
    Спасибо на хлеб не намажешь и в карман не положишь...

  10. Вверх #10

  11. Вверх #11
    HELP SOMEBODY PLEASE )

  12. Вверх #12
    Постоялец форума Аватар для Newton
    Пол
    Мужской
    Адрес
    Calgary, Alberta
    Сообщений
    1,080
    Репутация
    775
    Help yourself and save your money
    Моя хата з найкращого краю в світі.

  13. Вверх #13

  14. Вверх #14
    ты походу только учишся, так давай учись сам!

  15. Вверх #15
    Посетитель Аватар для IronChancellor
    Пол
    Мужской
    Адрес
    Odessa
    Возраст
    28
    Сообщений
    153
    Репутация
    30
    Цитата Сообщение от Bond2008 Посмотреть сообщение
    Помогите пожалуйста решить вот эти 2 задачки:
    2)Введите массив(array) 11 плавающих(floating) элементов. Вычислите количество элементов от интервала (-5;3] ..
    это будет так:
    Код:
    float arr[11] = {0};
    int count = 0;
    
    for(int i = 0; i < 11; i++)
    cin >> arr[i]; // или scanf()
    
    for(int i  = 0; i < 11; i++)
    if(arr[i] > -5 && arr[i] <= 3) count++;
    а вот эту часть задания я чет не уловил:
    "Замените(replace) вторые отрицательные и минимальные элементы."
    чем заменить? вторые, это элементы с четными индексами?

  16. Вверх #16
    Replace the second negative and minimum elements.

  17. Вверх #17
    Посетитель Аватар для IronChancellor
    Пол
    Мужской
    Адрес
    Odessa
    Возраст
    28
    Сообщений
    153
    Репутация
    30
    второй отрицательный и минимальный поменять местами, переводчики блин =).

    Код:
    float arr[11] = {0}, tmp = 0;
    int count = 0, negativeCounter = 0, negativeIndex = -1, minIndex = 0;
    
    for(int i = 0; i < 11; i++)
    cin >> arr[i]; // или scanf()
    
    
    
    for(int i  = 0; i < 11; i++){
    if(arr[i] > -5 && arr[i] <= 3) count++;
    if(arr[i] < arr[minIndex]) minIndex = i;
    if(arr[i] < 0) negativeCounter++;
    if(negativeCounter == 2) negativeIndex = i;
    }
    
    if(negativeIndex != -1){
    tmp = arr[negativeIndex];
    arr[negativeIndex] = arr[minIndex];
    arr[minIndex] = arr[negativeIndex];
    }
    вроде так, проверь
    I'm grey and lonely in my grey and lonely world.

  18. Вверх #18
    спасибо,но не так там надо....я уже решил...

  19. Вверх #19
    Посетитель Аватар для IronChancellor
    Пол
    Мужской
    Адрес
    Odessa
    Возраст
    28
    Сообщений
    153
    Репутация
    30
    теряюсь в догадках, как же надо было? приведите код в студию, пожалуйста, если не трудно
    I'm grey and lonely in my grey and lonely world.


Ответить в теме

Похожие темы

  1. Need help. Забилась мойка
    от Mash в разделе Домохозяйство
    Ответов: 25
    Последнее сообщение: 08.02.2015, 13:58
  2. Ben, I need help: оборудование для домашней студии
    от mikhail007 в разделе Музыка :: для исполнителей
    Ответов: 24
    Последнее сообщение: 03.08.2007, 19:54
  3. Router-Need help!
    от Badboyskiller в разделе Интернет
    Ответов: 1
    Последнее сообщение: 16.07.2007, 13:07
  4. Java, Struts, Custom tags... Need Help
    от shipr в разделе Программирование
    Ответов: 8
    Последнее сообщение: 29.12.2006, 14:20
  5. help with upgrade pls.
    от Messir Woland в разделе Железо
    Ответов: 12
    Последнее сообщение: 28.07.2006, 21:59

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения