| 
| 
 | Вопрос # 5 762/ вопрос открыт / | 
 |  Здравствуйте, уважаемые эксперты!Вопрос по языку Си.В приведённом ниже коде получается ли что сформирован массив b в котором количество элементов a(которое ввёл пользователь) и элементы массива b соответствуют тем,что ввёл пользователь и затем элементы отсортированы по возврастанию?Если да,то как мне обращаться к элементам массива b по убыванию начиная с большего элемента,и до тех пор пока их не станет 0,прибавлять эти элементы к переменой с.
 Заранее спасибо!
 Приложение:Переключить в обычный режим #include <stdio.h>int main(){    int a,temp    double b[a];    int c;    do    {              printf("input a");              scanf("%d",&a);    }     while(a>0);     for(i=0;i<a;i++)    {        printf("input %d elem.: %lf\n",i+1,b[i]);    }        for(int i=0; i<a; i++)    {          if(b[i]>b[i+1])          {                double temp=b[i];                temp[i]=b[i+1];                b[i+1]=temp;          }     }
|  |   Вопрос задал: Эдик (статус: Посетитель)Вопрос отправлен: 18 ноября 2011, 20:12
 Состояние вопроса: открыт, ответов: 0.
 |  
 Мини-форум вопросаВсего сообщений: 2; последнее сообщение — 19 ноября 2011, 10:22; участников в обсуждении: 1. 
|   | min@y™ (статус: Доктор наук), 19 ноября 2011, 09:56 [#1]:Странный вопрос... Компилить-то пробовал? Я, конечно, в сишнике не копенгаген, но что-то меня терзают смутные сомнения на счёт вот этой конструкции:
 
 int a,temp // точка с запятой где? переменная temp не используется
double b[a]; // размер статического массива разве не должен быть константой?Если, всё же, подразумевается динамический массив: 
 double b[];
// что эквивалентно
double* b;то где выделение памяти под элементы? 
 Или может я чо не понимаю?
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | 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. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |