DAV Опубликовано 2 февраля, 2011 Жалоба Поделиться Опубликовано 2 февраля, 2011 По поводу отличия C от C++они оба славятся олним и тем же - гибкостью. а классы/перегрузки/шаблоны с этой точки зрения - лишь надстройка. Для удобства и красоты.C, как инструмент, - это удобный карандаш, который можно хоть узлом завязать. Гибкий и ничего лишнего.C++ - это тот же карандаш, но со сменными стержнями, с резиночкой и кнопочкой "Вкл/Выкл".C# - модная ручка. прозрачная, с подсветкой и автоподогревом. Весьма отдаленно напоминает карандаш по форме и удобству.Pascal - стальной монолитный карандаш. Не пишет.Добавлено спустя 9 минут 40 секунд:C и С++ - языки с гибкостью чугунного кола с заплатами из чугуна и с лишними бантиками. Цитата Ссылка на комментарий
Дамнин-Бука Опубликовано 27 октября, 2011 Жалоба Поделиться Опубликовано 27 октября, 2011 Visual Studio С++ 2010 Pro может программу на C сконпелировать? Цитата Ссылка на комментарий
Whirlpool Опубликовано 27 октября, 2011 Жалоба Поделиться Опубликовано 27 октября, 2011 Дамнин-Букада Цитата Ссылка на комментарий
Koshak Опубликовано 5 февраля, 2012 Жалоба Поделиться Опубликовано 5 февраля, 2012 Допустим, я описал функцию Void Random(int i).в этой фукнции сделал необходимые вычисления и получил какое-то число q. после этого я вызываю функцию Void Random в функции int main() и мне нужно вывести это число q на экран.я пробовал делать return q, но ошибка "'void' function returning a value"а если я не делаю return, то функция Main просит ввести это число q, но мне не нужно его вводить, мне нужно вывести его на экран таким, каким его посчитала функция Void Random.как это сделатЬ? Цитата Ссылка на комментарий
Vsadnik665 Опубликовано 5 февраля, 2012 Жалоба Поделиться Опубликовано 5 февраля, 2012 если функция, то возвращай число q.int Random (int i);{int q;...return q;} Цитата Ссылка на комментарий
Innk Опубликовано 5 февраля, 2012 Жалоба Поделиться Опубликовано 5 февраля, 2012 Перед именем функции пишется тип возвращаемого значения, когда void - функция ничего не возвращает Цитата Ссылка на комментарий
Koshak Опубликовано 5 февраля, 2012 Жалоба Поделиться Опубликовано 5 февраля, 2012 если функция, то возвращай число q.int Random (int i);{int q;...return q;}я пробовал делать return q, но ошибка "'void' function returning a value"Добавлено спустя 38 секунд:Перед именем функции пишется тип возвращаемого значения, когда void - функция ничего не возвращаети что делать? переделать этот тип? Цитата Ссылка на комментарий
ArtyomK Опубликовано 5 февраля, 2012 Жалоба Поделиться Опубликовано 5 февраля, 2012 void Random(int i) -> int Random(int i) Цитата Ссылка на комментарий
Koshak Опубликовано 5 февраля, 2012 Жалоба Поделиться Опубликовано 5 февраля, 2012 void Random(int i) -> int Random(int i)сделал так. не помогаетint Random(int i){int q....return q}int main(){....printf("%d",q);}error C2065: 'q' : undeclared identifier Цитата Ссылка на комментарий
Lakers Опубликовано 5 февраля, 2012 Жалоба Поделиться Опубликовано 5 февраля, 2012 ужас то какойДобавлено спустя 35 секунд:int main(){....printf("%d",Random(2));} Цитата Ссылка на комментарий
Biohazard Опубликовано 5 февраля, 2012 Жалоба Поделиться Опубликовано 5 февраля, 2012 q - локальная переменная, ты не можешь ее просто так вызвать. Цитата Ссылка на комментарий
Koshak Опубликовано 5 февраля, 2012 Жалоба Поделиться Опубликовано 5 февраля, 2012 ужас то какойДобавлено спустя 35 секунд:int main(){....printf("%d",Random(2));}эм...что такое Random(2)?Добавлено спустя 42 секунды:q - локальная переменная, ты не можешь ее просто так вызвать.и как тогда?мне очень нужно передать её значение в main Цитата Ссылка на комментарий
D_Master Опубликовано 5 февраля, 2012 Жалоба Поделиться Опубликовано 5 февраля, 2012 что такое Random(2)?-_\\Функция это твояи как тогда?мне очень нужно передать её значение в mainLakers уже показал как Цитата Ссылка на комментарий
Koshak Опубликовано 5 февраля, 2012 Жалоба Поделиться Опубликовано 5 февраля, 2012 т .е. я пишу printf("%d",Random) и у меня выйдет значение переменной q???? Цитата Ссылка на комментарий
Biohazard Опубликовано 5 февраля, 2012 Жалоба Поделиться Опубликовано 5 февраля, 2012 можно сделать тип функции void и вывод организовать в теле функции , а потом в главной просто вызвать ее Цитата Ссылка на комментарий
Koshak Опубликовано 5 февраля, 2012 Жалоба Поделиться Опубликовано 5 февраля, 2012 т.е.void Random(int i){int q;........printf("%d",q);}int main()........эм...а как вызвать вывод? Цитата Ссылка на комментарий
D_Master Опубликовано 5 февраля, 2012 Жалоба Поделиться Опубликовано 5 февраля, 2012 Koshakпочитай что такое функции, для чего используются return'ы. У тебя проблема не в реализации, а в нехватке знаний. Цитата Ссылка на комментарий
Koshak Опубликовано 5 февраля, 2012 Жалоба Поделиться Опубликовано 5 февраля, 2012 ну дак, поэтому я и спрашиваю Цитата Ссылка на комментарий
Biohazard Опубликовано 5 февраля, 2012 Жалоба Поделиться Опубликовано 5 февраля, 2012 в теле главной функции просто вызови ее и все, она выведет значение.Например так:int main(){ ..... random(2); return 0;} Цитата Ссылка на комментарий
Koshak Опубликовано 5 февраля, 2012 Жалоба Поделиться Опубликовано 5 февраля, 2012 не получится.у меня функция делает сортировку.а в сортировке я еще считаю кол-во сравнений.это и есть число q.поэтому когда я её вызову, он будет сортировать, а не выводить число q. Цитата Ссылка на комментарий
Sheogorath Опубликовано 5 февраля, 2012 Жалоба Поделиться Опубликовано 5 февраля, 2012 Весь свой код выложи, и задание. Цитата Ссылка на комментарий
D_Master Опубликовано 5 февраля, 2012 Жалоба Поделиться Опубликовано 5 февраля, 2012 Koshakобъяви Q как глобальную переменную и изменяй её как хочешь Цитата Ссылка на комментарий
Koshak Опубликовано 5 февраля, 2012 Жалоба Поделиться Опубликовано 5 февраля, 2012 Весь свой код выложи, и задание.отсортировать массив методом вставок и сортировкой шелла.сравнить кол-во сравнений и присваиваний.#include #include #include void Random(int arr[], unsigned len){ srand(time(0)); unsigned i; for (i = 0; i < len; ++i) { arr[i] = rand() % (2*len); }}void Print(int arr[], unsigned len){ unsigned i; for (i = 0; i < len; ++i) { printf("%3d", arr[i]); } printf("\n") ;}void vstavki(int arr[],unsigned int len){ int v,i,j,q=0,z=0; for(i=0;i q=0,z=0; for (i=1;i { v=arr[i]; q=q+1; for (j=i-1;j>=0 && (arr[j] > v);j--,z++,q++) arr[j+1]=arr[j]; arr[j+1]=v; z=z+2; }}int shell(int * arr, int len){ int i,k,j,h,x,hh,s=0,p=0; h=len/2; do { do { hh=0; for(i=0;i { if(arr[i]>arr[i+h]) { x=arr[i]; arr[i]=arr[i+h]; arr[i+h]=x; hh=1; s++; p=p+3; }//if }//i }while(hh==1);//do2 h=h/2; }while(h>0);//do1 }int main(int argc, char **argv){ int s=1; int arr[20]; unsigned len = sizeof(arr)/sizeof(*arr); Random(arr, len); printf("array:"); Print(arr, len); shell(arr, len); printf(" \n "); printf("\nsorted:"); Print(arr, len); printf("\nsravneniy:"); printf("%d",shell); printf("\nvstavki:"); vstavki(arr, len); Print(arr,len); system("pause"); return 0;}нужно переменную "s" и "p" из int shell вывести в main. Цитата Ссылка на комментарий
martinges Опубликовано 5 февраля, 2012 Жалоба Поделиться Опубликовано 5 февраля, 2012 printf("%d",shell); стесняюсь спросить)) а параметры эта функция(shell) из воздуха берет?) Цитата Ссылка на комментарий
Koshak Опубликовано 5 февраля, 2012 Жалоба Поделиться Опубликовано 5 февраля, 2012 тогдаprintf("%d",shell(s,p))? Цитата Ссылка на комментарий
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.