例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;
}