Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Я новенький в C(Нужна помощ)[РЕШЕНО][Компенсация]  (Прочитано 993 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн kolia88

  • Автор темы
  • Новичок
  • *
  • Сообщений: 34
    • Просмотр профиля
Здравствуйте! Не подскажите как запустить в данном случае функцию сортировки, первые шаги, сейчас разбираюсь по-тихоньку, при запуске программы работают только две input - output
#include <stdio.h>


int input(int a[], int n){ //maasiv -a[], predel - n
int i,j;


for(i=0;i<n;i++){
printf("a[%d]=",i);
scanf("%d",a+i);
}

return n;
}

void output(int a[], int n){ //massiv - a[], kol-vo el-v - n
int i;

for(i=0;i<n;i++)
printf("a[%d]=%d\n",i+1,a[i]);

}

void sort(int s[], int n){ //massiv - a[], kol-vo el-v n
int i,j,t;
for(i=0;i=n-1;i++)
for(j=i+1;j<n;j++)
if(s[j]>s[i]){
t=s[i];
s[i]=s[j];
s[j]=t;
}


}

void separate(int a[], int n)
{
}

int main()
{
int mas[100],n;
printf("vvedite kolichestvo elementov\n");
scanf("%d",&n);
input(mas,n);
output(mas,n);
sort(mas,n);
output(mas,n);
return 0;
}
« Последнее редактирование: 04 Октября 2010, 16:00:33 от kolia88 »

Оффлайн VestniK

  • Активист
  • *
  • Сообщений: 594
    • Просмотр профиля
Re: Я новенький в C(Нужна помощ)
« Ответ #1 : 04 Октября 2010, 12:29:42 »
ну тут сходу можно отметить, что если при запуске ввести количество элементов больше 100, то программа полезет портить память и скорей всего получит segmentation fault.

А в чёи заключается проблема с sort? В чём заключается утверждение, что она не запускается? Ты пробовал туда отладочную печать втыкать?

Оффлайн kolia88

  • Автор темы
  • Новичок
  • *
  • Сообщений: 34
    • Просмотр профиля
Re: Я новенький в C(Нужна помощ)
« Ответ #2 : 04 Октября 2010, 12:38:27 »
Если я запускаю так как есть сейчас то происходит только input output далее работа программы не показывается и прерывания программы нету,  что ты подразумеваешь под словом !Отладочная печать! просто печать элементов внутри функции или что-то другое?но ведь на вход подаётся массив и после обработки с ним же можно работать тоесть работает вывод первый и ввод первый а далее всё, тут что не правильно кроме количества чисел массива? Работа программы предназначена для простых целей а не для общих покачто чтобы просто понять ...

Оффлайн VestniK

  • Активист
  • *
  • Сообщений: 594
    • Просмотр профиля
Re: Я новенький в C(Нужна помощ)
« Ответ #3 : 04 Октября 2010, 12:43:07 »
Отладочная печать она и в африке отладочная печать. Это просто prinf("Ja tuta!!!"); в том месте кода относительно запуска которого ты не уверен.

Оффлайн kolia88

  • Автор темы
  • Новичок
  • *
  • Сообщений: 34
    • Просмотр профиля
Re: Я новенький в C(Нужна помощ)
« Ответ #4 : 04 Октября 2010, 12:55:49 »
По отладочной печати я понял что в функцию мы не заходим. Признаюсь я просто вбил эти функции как препод писал чтобы посмотреть как работает вооружился книгой, если писать всё без функций я понимаю что будет работать а тут что я мог недопонять?

Оффлайн VestniK

  • Активист
  • *
  • Сообщений: 594
    • Просмотр профиля
Re: Я новенький в C(Нужна помощ)
« Ответ #5 : 04 Октября 2010, 13:05:30 »
Попробуй переименовать sort во что-нибудь типа my_sort и напиши как компилируешь.

Оффлайн kolia88

  • Автор темы
  • Новичок
  • *
  • Сообщений: 34
    • Просмотр профиля
Re: Я новенький в C(Нужна помощ)
« Ответ #6 : 04 Октября 2010, 13:14:32 »
sudo gcc primer.c -o primerСмена имени не изменила работу программы

Оффлайн VestniK

  • Активист
  • *
  • Сообщений: 594
    • Просмотр профиля
Re: Я новенький в C(Нужна помощ)
« Ответ #7 : 04 Октября 2010, 13:22:59 »
а sudo зачем???

Оффлайн kolia88

  • Автор темы
  • Новичок
  • *
  • Сообщений: 34
    • Просмотр профиля
Re: Я новенький в C(Нужна помощ)
« Ответ #8 : 04 Октября 2010, 13:24:55 »
Сделал без судо ничего не изменилось

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: Я новенький в C(Нужна помощ)
« Ответ #9 : 04 Октября 2010, 13:33:16 »
Цитировать
   for(i=0;i=n-1;i++)
Это как понимать? Может всеже
for(i=0;i==n-1;i++) ?
или вообще
for(i=0;i<n;i++)

Оффлайн VestniK

  • Активист
  • *
  • Сообщений: 594
    • Просмотр профиля
Re: Я новенький в C(Нужна помощ)
« Ответ #10 : 04 Октября 2010, 13:35:30 »
sudo используй только когда нужно использовать повышенные привелегии. Если что-то не работает, не пытайся это испрвить втыканием sudo! Если что-то говорит Permision denied сначала узнай почему этому чему-то нужны повышенные привелегии, а потом уже думай использовать sudo или нет! Это запомни в первую очередь.

По проблеме, компиляция с включенными wrning'ами:
gcc -Wall primer.c -o primer
Подскажет в какой строчке ошибка.

Оффлайн kolia88

  • Автор темы
  • Новичок
  • *
  • Сообщений: 34
    • Просмотр профиля
Re: Я новенький в C(Нужна помощ)
« Ответ #11 : 04 Октября 2010, 13:41:54 »
ох жесть, прошу у всех прощения!!!

В качестве компенсации!
присылаю исходный код задания)
Задачка: Дана последовательность из n целых чисел. Сформировать 2 новых массива на основе исходного состоящих из отрицательных элементов и положительных. Вывести исходный и два отсортированных по убыванию полученных массива.
(Нажмите, чтобы показать/скрыть)

На основе полученного бага выявленного в данной програме я разобрался и написал целое задание)))
« Последнее редактирование: 04 Октября 2010, 17:02:11 от kolia88 »

 

Страница сгенерирована за 2.618 секунд. Запросов: 27.