Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Int max_3(int, int, int);




void main(){

Int x1,x2,x3,x4,x5,max1,max2,max3;

printf("5 chisel:");

scanf("%d%d%d%d%d",&x1,&x2,&x3,&x4,&x5);

max1=max_3(x1,x2,x3);

printf("Iz chisel: %d %d %d max=%d\n",x1,x2,x3,max1);

max2=max_3(x4,x2,x3);

printf("Iz chisel: %d %d %d max=%d\n",x4,x2,x3,max2);

max3=max_3(x3,x4,x5);

printf("Iz chisel: %d %d %d max=%d\n",x4,x5,x3,max3);

}

int max_3(int a,int b,int c){

int max=a;

if(max<b)

max=b;

if(max<c)

max=c;

Return max;

}

  1. Ввести 5 чисел x1,x2,x3,x4,x5 и определить минимальное из x1,x2,x3; из x4,x2,x3; из x4,x5,x3. Использовать функцию, которая получает 3 числа и возвращает минимальное из них
  2. Ввести 5 чисел x1,x2,x3,x4,x5 и определить минимальное и максимальное из x1,x2,x3; из x4,x2,x3; из x4,x5,x3. Использовать 2 функции, 1-ая получает 3 числа и возвращает минимальное из них, 2-ая получает 3 числа и возвращает максимальное из них
  3. Написать функцию, которая считает факториал числа. Ввести 3 числа, посчитать их факториалы.
  4. Решение квадратного уравнения, используя 3 функции: 1-ая печатает уравнение, 2-ая считает дискриминант, 3-я выводит корни уравнения.
  5. Функция, которая получает степень n и основание x и возвращает xn.
  6. Функция получает 2 целых числа и возвращает деление этих чисел.
  7. Функция, которая получает число и определяет, является ли данное число совершенным или нет. Используя эту функцию в программе, которая определяет и печатает все совершенные числа от 1 до 1000. Напечатайте все сомножители каждого совершенного числа, чтобы убедится, чтобы убедиться, что число действительно совершенно.

Классы памяти.

 

В языках программирования C/C++ имеются четыре спецификации класса памяти: auto, register, extern и static. Спецификация класса памяти переменной помогает определить его класс памяти и область действия. Класс памяти переменной определяет его время жизни или время существования этой переменной, связанная с понятием блока программы. Одни переменные живут не долго, другие неоднократно создаются и уничтожаются, а третьи существуют на протяжении всей программы. Область действия (область видимости) переменной – это область программы в которой на данную переменную можно сослаться, т.е. на некоторые переменные сослаться в любом месте программы, тогда как на другие только в определенных частях программы.

Автоматическая переменная (auto) – это всегда локальная переменная, и память для выделяется в оперативной памяти автоматически при входе в блок и освобождается тоже автоматически при выходе из блока. К переменным типа auto доступ из внешнего блока невозможен.

Регистровая переменная (register) – это автоматическая переменная, только ключевое слово register – лишь указывает компилятору, что эту переменную необходимо поместить в регистр, а не в оперативную память, что приводит к уменьшению затраты времени при решении задачи. Регистровой переменной могут быть переменные целого типа. Если вы объявите переменную как register, то нет уверенности в том, что она будет помещена в регистре, т.к. не может быть места в регистре. Некоторые новые компиляторы сами способны распознавать часто используемую переменную и помещать ее в регистр.

К классу extern относятся автоматически имена функций и глобальные переменные. Но есть различие между классом памяти и областью определения, к примеру, если есть блок, где объявлена локальная переменная под тем же именем, что и глобальная, то в этом блоке нет доступа к глобальной переменной.

static – локальные переменные объявленные ключевым словом static известны только в той функции, где они определены, но в отличии от локальных переменных объявленных, как auto переменные static сохраняют свое значение в течении всего времени выполнения программы, причем при каждом последующем вызове функции сохраняет предыдущее значение которое оно имела при предыдущем вызове. Переменные объявленные как static автоматически получают нулевые значения.

Рассмотрим следующий пример:

#include<stdio.h>

Void a();

Void b();

Void c();

int x=1;

void main(){

int x=5;

printf("Локальная переменная х при входе в функцию main() %d\n",x);

{

int x=7;

printf("Локальная переменная x в блоке{}, который находиться в функции main() %d\n",x);

}

printf("Локальная переменная х внутри функции main() %d\n",x);

A();

B();

C();

A();

B();

C();

printf("Локальная переменная х при выходе из функции main() %d\n",x);

}

void a(){

int x=25;

printf("Локальная переменная х при входе в функцию a() %d\n",x);

x++;

printf("Локальная переменная х при выходе из функции a() %d\n",x);

}

void b(){

static int x=50;

printf("Локальная переменная х при входе в функцию b() %d\n",x);

x++;

printf("b() %d\n",x);

}

void c(){

printf("Глобальная переменная х при входе в функцию c() %d\n",x);

x*=10;

printf("Глобальная переменная х при выходе из функции c() %d\n",x);

}






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных