Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 5 762

Раздел: C++
/ вопрос открыт /

Здравствуйте, уважаемые эксперты!Вопрос по языку Си.
В приведённом ниже коде получается ли что сформирован массив b в котором количество элементов a(которое ввёл пользователь) и элементы массива b соответствуют тем,что ввёл пользователь и затем элементы отсортированы по возврастанию?Если да,то как мне обращаться к элементам массива b по убыванию начиная с большего элемента,и до тех пор пока их не станет 0,прибавлять эти элементы к переменой с.
Заранее спасибо!

Приложение:
  1. #include <stdio.h>
  2. int main()
  3. {
  4. int a,temp
  5. double b[a];
  6. int c;
  7. do
  8. {
  9. printf("input a");
  10. scanf("%d",&a);
  11. }
  12. while(a>0);
  13. for(i=0;i<a;i++)
  14. {
  15. printf("input %d elem.: %lf\n",i+1,b[i]);
  16. }
  17. for(int i=0; i<a; i++)
  18. {
  19. if(b[i]>b[i+1])
  20. {
  21. double temp=b[i];
  22. temp[i]=b[i+1];
  23. b[i+1]=temp;
  24. }
  25. }


Эдик Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Эдик (статус: Посетитель)
Вопрос отправлен: 18 ноября 2011, 20:12
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 2; последнее сообщение — 19 ноября 2011, 10:22; участников в обсуждении: 1.
min@y™

min@y™ (статус: Доктор наук), 19 ноября 2011, 09:56 [#1]:

Странный вопрос... Компилить-то пробовал?
Я, конечно, в сишнике не копенгаген, но что-то меня терзают смутные сомнения на счёт вот этой конструкции:
int a,temp // точка с запятой где? переменная temp не используется
double b[a]; // размер статического массива разве не должен быть константой?
Если, всё же, подразумевается динамический массив:
double b[];
// что эквивалентно
double* b;
то где выделение памяти под элементы?

Или может я чо не понимаю?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
min@y™

min@y™ (статус: Доктор наук), 19 ноября 2011, 10:22 [#2]:

Я попробовал воспроизвести это безобразие на С++билдере. Получилась вот такая хрень:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
 
//---------------------------------------------------------------------------
 
#pragma hdrstop
 
//---------------------------------------------------------------------------
 
#pragma argsused
 
// вывод массива на консоль
void PrintArray(double* X, const int Size)
{
  for (int Index = 0; Index != Size; Index++)
    printf("%d: %lf\n", Index, X[Index]);
}
 
int main(int argc, char* argv[])
{
  int a;
  double* b;
 
  do
  {
    printf("input a: "); // ввод размера > 0
    scanf("%d", &a);
  } while(a <= 0);
 
  b = (double*)malloc(a * sizeof(double)); // выделение памяти
  try
  {
    for(int i = 0; i != a; i++) // ввод элементов массива
    {  
      printf("input %d elem.: ", i + 1);
      scanf("%lf", &b[i]);
    } 
 
    PrintArray(b, a); // вывод массива для проверки
 
    // здесь должна быть сортировка, мне её писать влом,
    // и вывод отсортированного массива
  }
  __finally 
  {
    if (b) free(b); // освобождение памяти
  }  
 
  getch();
  return 0;
}
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:47
Выполнено за 0.03 сек.