C/Function/Function

Материал из C\C++ эксперт
Перейти к: навигация, поиск

A program with two functions

#include <stdio.h>
void f(void); /* prototype for f() */
int main(void)
{
  printf("I ");
  f();
  printf("java2s.com.");
  return 0;
}
void f(void)
{
  printf("like ");
}


A simple program that demonstrates sum()

#include <stdio.h>
void sum(int x, int y); 
int main(void) {
  sum(12, 230);
  sum(94, 63);
  sum(851, 39);
  return 0;
}
void sum(int x, int y)
{
  printf("%d ", x + y);
}


Assign function return value to a variable

#include <stdio.h>
int f(void);
int main(void)
{
  double answer;
  answer = f();
  printf("%f", answer);
  return 0;
}
int f(void)
{
  return 100;
}


Check out the int value change before and after function call

#include <stdio.h>
void  f(int *k) {
  *k = *k + 10; 
}
main () {
  int i;
  i = 0;
    
    printf (" i before call %d \n", i);
  f(&i); 
    printf ("i after call %d \n", i);
}


Define function and return value

  
#include <stdio.h>
int f(void);  
int main(void)
{
  char ch;
  ch = f();
  printf("%c", ch);
  return 0;
}
int f(void)
{
  return "a";
}


Define function and use it

#include <stdio.h>
int f(void); /* prototype */
int main(void)
{
  int num;
  num = f( );
  printf("%d", num);
  return 0;
}
int f(void)
{
  return 10;
}


Define function and use it: square

#include <stdio.h>
int sqr(int x);
int main(void)
{
  int t=10;
  printf("%d %d", sqr(t), t);
  return 0;
}
int sqr(int x)
{
  x = x * x;
  return( x );
}


Define function to calculate the ounces and cups

#include <stdio.h>
int ounces_to_cups(int o);
int main(void)
{
  int ounces;
  int cups;
  printf("Enter ounces: ");
  scanf("%d", &ounces);
  cups = ounces_to_cups(ounces);
  printf("%d cups", cups);
  return 0;
}
int ounces_to_cups(int o)
{
  return o / 8;
}


Define function to calculate the volumn

  
#include <stdio.h>
double volume(double s1, double s2, double s3);
int main(void)
{
  double vol;
  vol = volume(12.2, 5.67, 9.03);
  printf("Volume: %f", vol);
  return 0;
}
double volume(double s1, double s2, double s3)
{
  return s1 * s2 * s3;
}


Define function to multiply two int

#include <stdio.h>
int mul(int a, int b);
int main(void) {
  int x, y, z;
  x = 10;   
  y = 20;
  z = mul(x, y);           /* 1 */
  
  printf("%d", mul(x,y));  /* 2 */
  
  mul(x, y);               /* 3 */
  return 0;
}
int mul(int a, int b) {
  return a * b;
}


Define function to output char

  
#include <stdio.h>
void printchar(char ch);
int main(void)
{
  printchar("A");
  printchar("B");
  printchar("C");
  return 0;
}
void printchar(char ch)
{
  printf("%c", ch);
}


Define function to sum

#include <stdio.h>
int sum(int i1, int i2,int i3)
{
   return (i1 + i2 + i3);
}
int main()
{
    printf("Sum is %d\n", sum(1, 2, 3));
    return (0);
}


Define function with parameter and return value

  
#include <stdio.h>
double f();
int main(void)
{
  printf("%f", f(10.2));
  return 0;
}
double f(double num)
{
  return num / 2.0;
}


Define function with void return

#include <stdio.h>
void outputnum(int num);
int main(void)
{
  outputnum(10);
  return 0;
}
void outputnum(int num)
{
  printf("%d", num);
}


Define two functions and call them in main

#include <stdio.h>
void f1(void);
void f2(void);
int main(void)
{
  f1();
  f2();
  return 0;
}
void f1(void)
{
  printf("f1, ");
}
void f2(void)
{
  printf("f2.");
}


Define two functions and make function call

  
#include <stdio.h>
void f1(void), f2(void);
int main(void) {
  f1();
  return 0;
}
void f1(void) {
  int i;
  for(i = 0; i < 10; i++) 
      f2();
}
void f2(void) {
  int i;
  for(i = 0; i < 10; i++) 
      printf("%d ", i);
}


Definition of the function to calculate an average

#include <stdio.h>
float average(float x, float y) {
   return (x + y)/2.0f;
}
/* main program - execution always starts here */
void main() {
   float average(float x, float y);  /* Function prototype */
   float value1 = 1.0F;
   float value2 = 2.0F;
   float r = 0.0F;

   r = average(value1, value2);
   printf("\nThe average is: %f",  r);
}


Demonstraction of function call

void f2(void){
   printf ("2 \n");
   
}
void f1 (void) {
  printf ("1 \n");
  printf ("1 \n");
  f2 ( );
  printf ("1 \n");
  printf ("1 \n");
}

int main ( )
{
  printf ("\n");
  printf ("\n");
  printf ("\n");
  printf ("\n");
  printf ("\n");
             f1();
  printf ("\n");
  printf ("\n");
  printf ("\n");
  printf ("\n");
    return 0;
}


Function call

  
void f(int k) {
  k = k + 10;
}
int main ( ) {
  int i = 0;
  
    printf ("i before call %d \n", i);
  f(i);
    printf (" i after call %d \n", i);
}


Function call each other

  
#include <stdio.h>
void f2(int b);
void f1(int a);
int main(void)
{
  f1(30);
  return 0;
}
void f1(int a)
{
  if( a ) 
      f2( a - 1 );
  printf("%d ", a);
}
void f2(int b)
{
  printf(" . ");
  if(b) 
      f1( b - 1 );
}


Function declaration

  
#include <stdio.h>
int area(int l, int w); 
int main(void)
{
  printf("area is %d", area(100, 130));
  return 0;
}
int area(l, w)
int l, w;
{
  return l * w;
}


Function: Print a string in uppercase

#include <stdio.h>
#include <ctype.h>
void print_upper(char *string);
int main(void)
{
  char s[80];
  printf("Enter a string: ");
  gets(s);
  print_upper(s); 
  printf("\ns is now uppercase: %s", s);
  return 0;
}
void print_upper(char *string)
{
  register int t;
  for(t=0; string[t]; ++t)  {
    string[t] = toupper(string[t]);
    putchar(string[t]);
  }
}


Function prototype

  
#include <stdio.h>
void f(void);
int main(void)
{
  f();
  f();
  return 0;
}
void f(void)
{
  int i = 10;
  printf("%d ", i);
}


Function prototype: declare getnum() prior to its first use

  
#include <stdio.h>
/* declare getnum() prior to its first use */
float getnum(void)
{
  float x;
  printf("Enter a number: ");
  scanf("%f", &x);
  return x;
}
int main(void)
{
  float i;
  i = getnum();
  printf("%f", i);
  return 0;
}


Function to output square

#include <stdio.h>
void sqrF(int num);
int main(void)
{
  sqrF(10.0);
  return 0;
}
void sqrF(int num)
{
  printf("%d", num * num);
}


Function which returns int value

#include <stdio.h>
int convert(void);
int main(void)
{
  printf("%d", convert());
  return 0;
}
int convert(void)
{
  int dollars;
  printf("Enter number of dollars: ");
  scanf("%d", &dollars);
  return dollars / 8;
}


Global and local variable inside function

  
#include <stdio.h>
int count; /* global count */

void f(void)
{
  int count; /* local count */
  count = 100;
  printf("count in f() : %d\n", count);
}
int main(void)
{
  count = 10;
  f();
  printf("count in main(): %d\n", count);
  return 0;
}


Return statement

  
#include <stdio.h>
void f(void);
int main(void)
{
  f();
  return 0;
}
void f(void)
{
  printf("Here.");
  return; /* return with no value */
  printf("Never.");
}


Serve as a prototype within this program

#include <stdio.h>

void f(int a, int b)
{
  printf("%d ", a % b);
}
int main(void)
{
  f(10,3);
  return 0;
}


This program has three functions

#include <stdio.h>
void f1(void); /* prototypes */
void f2(void);
int main(void)
{
  f2( );
  printf("3");
  return 0;
}
void f2(void)
{
  f1();
  printf("2 ");
}
void f1(void)
{
  printf("1 ");
}


Uses a function prototype to enforce strong type checking

void sqr_it(int *i); /* prototype */
int main(void)
{
  int x;
  x = 10;
  sqr_it(x);  /* type mismatch */
  return 0;
}
void sqr_it(int *i)
{
  *i = *i * *i;
}