Перейти к содержанию

С/С++ Вопросы и ответы ()


Рекомендуемые сообщения

По поводу отличия C от C++

они оба славятся олним и тем же - гибкостью. а классы/перегрузки/шаблоны с этой точки зрения - лишь надстройка. Для удобства и красоты.

C, как инструмент, - это удобный карандаш, который можно хоть узлом завязать. Гибкий и ничего лишнего.

C++ - это тот же карандаш, но со сменными стержнями, с резиночкой и кнопочкой "Вкл/Выкл".

C# - модная ручка. прозрачная, с подсветкой и автоподогревом. Весьма отдаленно напоминает карандаш по форме и удобству.

Pascal - стальной монолитный карандаш. Не пишет.

Добавлено спустя 9 минут 40 секунд:

C и С++ - языки с гибкостью чугунного кола с заплатами из чугуна и с лишними бантиками.

Ссылка на комментарий
  • 8 месяцев спустя...
  • 3 месяца спустя...

Допустим, я описал функцию Void Random(int i).в этой фукнции сделал необходимые вычисления и получил какое-то число q. после этого я вызываю функцию Void Random в функции int main() и мне нужно вывести это число q на экран.

я пробовал делать return q, но ошибка "'void' function returning a value"

а если я не делаю return, то функция Main просит ввести это число q, но мне не нужно его вводить, мне нужно вывести его на экран таким, каким его посчитала функция Void Random.как это сделатЬ?

Ссылка на комментарий
если функция, то возвращай число q.

int Random (int i);

{

int q;

...

return q;

}

я пробовал делать return q, но ошибка "'void' function returning a value"

Добавлено спустя 38 секунд:

Перед именем функции пишется тип возвращаемого значения, когда void - функция ничего не возвращает

и что делать?:) переделать этот тип?

Ссылка на комментарий
ужас то какой

Добавлено спустя 35 секунд:

int main()

{

....

printf("%d",Random(2));

}

эм...что такое Random(2)?

Добавлено спустя 42 секунды:

q - локальная переменная, ты не можешь ее просто так вызвать.

и как тогда?мне очень нужно передать её значение в main

Ссылка на комментарий

не получится.

у меня функция делает сортировку.а в сортировке я еще считаю кол-во сравнений.это и есть число q.

поэтому когда я её вызову, он будет сортировать, а не выводить число q.

Ссылка на комментарий
Весь свой код выложи, и задание.

отсортировать массив методом вставок и сортировкой шелла.сравнить кол-во сравнений и присваиваний.

#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.

Ссылка на комментарий

Пожалуйста, войдите, чтобы комментировать

Вы сможете оставить комментарий после входа в



Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...