|
Вопрос # 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. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|