C语言学习——第七章函数

 

例7.4
#include <stdio.h>
int isprime(int);         /*isprime 函数的说明语句*/
main( )
{ int x;
  printf("Enter a integer number:");
  scanf("%d", &x);       /*从键盘输入一个整数*/
  if(isprime(x))
    printf("%d is prime\n", x);      /*当函数返回1 时,输出"是素数"*/
  else
    printf("%d is not prime\n", x);  /*当函数返回0 时,输出"不是素数"*/
}

int isprime( int a)                  /*定义isprime 函数*/
{ int i;
  for(i=2; i <= a/2 ; i++)
  if(a % i == 0) return 0;      /*a 一旦能被某个数整除,即不是素数,返回0*/
  return 1;                     /*a 不能被2 到a/2 之间任何一个数整除,返回1*/
}

 

例7.5
#include <stdio.h>
Int isprime(int);             /*isprime 函数的说明语句*/
void even(int);          /*even 函数的说明语句*/
main()
{ int a;
  printf("Enter a even number : "); scanf("%d", &a);
  if(a % 2 == 0) even(a);
  else printf("The %d isn t even number\n", a);
}

void even(int x)      /*定义even 函数*/
{ int i;
  for(i = 2; i <= x/2; i++)
    if(isprime(i))
      if(isprime(x-i))
      { printf("%d = %d+%d\n", x, i, x-i); return; }
      } 

int isprime(int a)      /*isprime 函数定义与例7.4同,在此省略*/
{……}

 

 

例7.6
#include <stdio.h>
int sum(int);   /*sum 函数的说明语句*/
int f(int);     /*f 函数的说明语句*/
main()
{ int a, b;
  printf("Enter a integer number: ");    /*输入一个整数*/
  scanf("%d", &a);
  b = sum(a);             /*调用sum 函数求f(x)的累加和*/
  printf("a = %dsum = %d\n" , a, b);
}

int sum(int n)        /*定义sum 函数*/
{ int x, s=0;
  for(x = 0; x <= n; x++) s+= f(x);
  return s;            /*返回累加和*/
}

int f(int x)        /*定义f(x)函数*/
{ return x*x+1; }

 

 

例7.7
#include <stdio.h>
#include <math.h>
double integ(double a, double b)
{ double s, x, h;
  int n = 100, i;
  h = fabs(b-a) / n;    /*fabs()为求绝对值函数*/
  s =(sin(a)+sin(b))/2.0;
  for(i = 1; i <= n-1; i++)
  { x = a+i*h; s = s+sin(x); }
  s = s*h;
  return s;
}

main()
{ double s;
  s = integ(0.0, 1.5);
  printf("s = %f\n",s);
}

 

 

例7.8
#include <stdio.h>
#include <ctype.h>
char myupper(char ch)
{ if(ch >= a && ch <= z)  ch = ch-32;
  return ch ;
}

main()
{ char c;
  while(( c = getchar()) !='@')
  { c = myupper(c);
    putchar(c);
  }
}

 

 

例7.9
#include <stdio.h>
Long countch();    /*countch 函数说明语句*/
main()
{ long n;
  n = countch();
  printf("n = %ld\n", n);
}

long countch()
{ long cn;
  for(cn = 0; getchar() !='@'; cn++);
  return cn;
}

 

 

例7.10
#include <stdio.h>
#define IN 1       /*标志在一个单词的内部*/
#define OUT 0      /*标志在一个单词的外部*/
int countword();   /*函数说明语句*/
main()
{ int n;
  n = countword();
  printf("n = %d\n", n);
}

int countword()
{ int c, nw, state;
  state = OUT;              /*在单词的外部*/
  nw = 0;
  while(( c = getchar()) !='@')
  { if(c ==''|| c =='\n'|| c=='\t')
    state = OUT;            /*读入的字符是分隔符,在一个单词的外部*/
    else if(state == OUT)   /*如果遇到单词的第一个字符*/
    { state = IN;           /*状态变量置成IN:在单词的内部*/
      nw++;                 /*单词个数增1*/
    }
  }
  return nw;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Crow_jing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值