Главная

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

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

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

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

ТОР 5 статей:

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

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

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

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

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

КАТЕГОРИИ:






Возвращаемые значения функций




Формально верная фраза такая: функция может возвращать значения любого типа, кроме массива или функции (но она может возвращать указатель на массив или функцию). Функция возвращает значение в момент выполнения оператора return, причем (в отличие от Паскаля, где присваивание значения имени функции на ход ее выполнения прямого действия не оказывает) при выполнении оператора return происходит выход из функции.


На Паскале:

function simple(n: integer):booleah; {является ли число простым}

var i: integer; sqrtn:real;

begin simple:=true;

i:=2;sqrtn:=sqrt (n);

while (i<=sqrtn) and (n mod i <> 0) inc(i);

if (n mod i=0) then simple:=false;end;


На Си:

int simple(int n) /*является ли число простым*/

{ int i=2; float sqrtn=sqrt(n);

while (<i<=sqrtn) && (n%i)) i++;

return (n%i);

}


 

Обратите внимание, что в примере на Паскале после первого присваивания simple:=true ничего не происходит, а вот на Си оператор return "выбросил" бы нас из функции.

Самая равная среди равных (функция main)

В простейшем случае программа на Си состоит из одного файла, который, в свою очередь, содержит единственную функцию. И имя ей main. функция main является аналогом тела программы в Паскале.


вычисление квадрата

#include <stdio.h>

float sq(float y)

{return y*y;

}

main ()

{float x;

scanf("%f",&x);

printf("\n%f\n",sq(x));

}

НОД

# include <stdio.h>

int nod(int a, int b)

{ int i;

for (i=a;i>=1;i--) if ((a%i==0)&&(b%i==0)) return(i);

}

main()

{int x,y;

scanf("%d%d", &x,&y);

if (x>y) printf("%d",nod(y,x));else printf("%d",nod(x,y));

}

простое число

#include <stdlib.h>

#include <math.h>

int prost(int x)

{int i;

for (i=2;i<x;i++)

if (x%i==0) return(0);

return(1);

}

main()

{

int n;

for (n=1;n<20;n++) if (prost(n)) printf("\n%d", n);

}

Пример рекурсивной функции вычисления факториала

#include <stdio.h>

unsigned long fact(unsigned long n)

{ if (!n) return 1; else return n*fact(n-1);}

void main(void)

{ unsigned long n;

printf("\nЧисло? (<=12)");scanf("%ld",&n);

printf("Факториал %ld = %ld",n,fact(n));

}

Перевод десятичного числа в систему счисления с другим основанием (меньшим 10)

#include <stdio.h>

void translate(int n, int p)

{ if (n>=p) translate(n/p,p);

printf("%d",n%p);

}

void main (void)

{ int n,p;

printf("n\Число?");scanf("%d", &n);

printf ("Основание системы счисления?");scant("%d",&p);

translate(n,p);

printf("\n");

}

Пример функции вычисления квадратного корня

#include <stdio.h>

#include <math.h>

float root2 (float x)

{ float e=lE-10, xn, xnplusl=x;

do {

xn=xnplus1;

xnplus1=0.5*(xn+x/xn);

} while (fabs(xn-xnplus1)>e);

return xnplus1;

}

 

void main(void)

{ float х;

printf ("\nЧисло?");scant("%f",&x);

printf("Наша функция возвращает: %f",root2(x);

printf("\nФункция sqrt возвращает: %f",sgrt(x));

}

 


. СТАНДАРТНЫЕ ПРОГРАММЫ.

К наиболее интересным и важным функциям языка относится printf.

Она предназначена для форматированного вывода данных. Например, что бы вывести некоторое сообщение на экран дисплея, достаточно использовать вызов функций: Printf (“Интересное сообщение\ n”);

Обычно printf служит для вывода значений переменных. Первым аргументом служит строка форматов, а последующими, если они есть, - выводимые объекты. Строка форматов может включать обычные символы, просто копируемые при выводе и спецификации преобразования, которые начинаются со знака %, за ним следует символ преобразования. Например, если a, b, c - целые величины, то их значения могут быть выданы в десятичном виде следующей командой:

printf(“Значения a, b, c равны: %d %d %d \ n, “ a, b, c);

Каждая спецификация преобразования соответствует одному из аргументов, которые следуют за форматной строкой; между ними устанавливается взаимно однозначное соответствие. Буква d в спецификации преобразования указывает, что значение аргумента должно быть нап6ечатано как десятичное число. Из других символов преобразования отметим: c - для вывода отдельного символа; s - для печати символьной строки; x и о- для вывода шестнадцатиричных и восьмеричных чисел соответственно; f- для вывода чисел с плавающей точкой. В следующем примере:

printf (“%c = %d \ n”, g, g);

значение переменной g выводится как символ алфавита, а после знака равенства—как числовое значение, соответствующее внутреннему (машинному) коду этого символа. Вот почему в качестве аргументов дважды используется одно и тоже имя. Перед символом преобразования может стоять числовой коэффициент, явно указывающий колличество позиций в выводимой строке, отведенных для элемента вывода:

printf(“%5d %c \n”, i*i, s);






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

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