6-1 使用函数计算两点间的距离(10 分)
double dist( double x1, double y1, double x2, double y2 ){
return pow(pow((x1-x2),2)+pow((y1-y2),2),0.5);
}
6-2 符号函数(10 分)
int sign(int x) {
if (x > 0) {
return 1;
} else if (x == 0) {
return 0;
} else {
return -1;
}
}
6-3 使用函数求1到10的阶乘和(10 分)
double fact( int n ){
int num;
num=1;
for(int j=1;j<=n;j++){
num *=j;
}
return num;
}
6-4 使用函数判断完全平方数(10 分)
int IsSquare( int n ){
if(pow(n,0.5)*pow(n,0.5)==n){
return 1;
}else{
return 0;
}
}
6-5 使用函数求素数和(20 分)
int prime( int p ) {
int count=0;
for(int i=1; i<=p; i++) {
if(p%i==0) {
count++;
}
}
if(count==2) {
return 1;
} else {
return 0;
}
}
int PrimeSum( int m, int n ) {
int sum=0;
for(int i=m; i<=n; i++) {
if(prime(i)) {
sum+=i;
}
}
return sum;
}
6-6 数字金字塔(15 分)
void pyramid( int n )
{
for(int i=1;i<=n;i++){
for(int m=n;m>i;m--){
printf(" ");
}
for(int j=1;j<=i;j++){
printf("%d ",i);
}
printf("\n");
}
}
6-7 使用函数计算两个复数之积(10 分)
void complex_prod(double x1, double y1, double x2, double y2) {
result_real = x1 * x2 - y1 * y2;
result_imag = x1 * y2 + x2 * y1;
}
6-8 使用函数求最大公约数(10 分)
int gcd( int x, int y ){
int i=x;
while(1){
if(x%i==0&&y%i==0){
return i;
}
i--;
}
}
6-9 使用函数统计指定数字的个数(15 分)
int CountDigit(int number, int digit) {
int a, b;
int count = 0;
if (number == 0) {
return 1;
}
while (number != 0) {
a = number % 10;
if (a == digit || a == -digit) {
count++;
}
number = number / 10;
}
return count;
}
6-10 使用函数求余弦函数的近似值(15 分)
double funcos(double e, double x) {
double sum = 0, d = 100;
int i = 0, j;
double cj;
int count = 0;
while (d > e) {
count++;
if (count % 2 != 0) {
cj = 1;
for (j = 1; j <= i; j++) {
cj = cj * j;
}
d = pow(x, i) / cj;
sum = sum + d;
i += 2;
} else {
cj = 1;
for (j = 1; j <= i; j++) {
cj = cj * j;
}
d = pow(x, i) / cj;
sum = sum - d;
i += 2;
}
}
return sum;
}
6-11 使用函数输出水仙花数(20 分)
int narcissistic( int number ){
int sum,sum2=0,a=number,count=0;
while(a>0){
a/=10;
count++;
}
a=number;
for(int i=0;i<count;i++){
int num=a%10;
a/=10;
sum=1;
for(int j=0;j<count;j++){
sum*=num;
}
sum2+=sum;
}
if(sum2==number){
return 1;
}else{
return 0;
}
}
void PrintN( int m, int n ){
for(int i=m+1;i<n;i++){
if(narcissistic(i)==1){
printf("%d\n",i);
}
}
}