1. 使用函数计算两点间的距离:给定平面任意两点坐标(x1,y1)和(x2,y2),求这两点之间的距离(保留2位)小数。要求定义和调用dist(x1,y1,x2,y2)计算两点间的距离。坐标中两点坐标之间的距离公式如下:
#include <stdio.h>
#include <math.h>double dist(x1,y1,x2,y2){return sqrt(pow((x1-x2),2)+pow((y1-y2),2));
}
int main(){printf("%lf\n",dist(4,7,7,11));return 0;
}
2. 请编写函数fun,它的功能是计算并输出给定整数n的所有因子(不包括1与自身)的平方和(规定n的值不大于100)。
输入输出实例
Enter n:56
sum=1113
#include <stdio.h>
#include <math.h>int fun(int n){int i,sum=0;if(n == 1){return 1;}if(n<1 || n>100) {printf("Error!\n");return 0;}for(i=2;i<n;i++){// 如果 n 能被 i 整除 if(!(n%i)){sum += pow(i,2);}}return sum;
}int main(){int n;printf("Enter n:"); scanf("%d",&n);printf("sum=%d\n",fun(n));return 0;
}
3. 使用函数输出字符矩阵:输入矩形的长度len、宽度width和字符ch,输出一个长宽分别为len和width的实心字符矩阵。要求定义并调用函数matrix(len, width, ch),实现在屏幕上显示长度为len、宽度为width,由字符ch组成的实心矩阵图案。
输入输出实例
Enter len,width,ch:5 2 G
GGGGG
GGGGG
#include <stdio.h>
void matrix(int len,int width,char ch){int i,j;for(i=0;i<width;i++){for(j=0;j<len;j++){printf("%c",ch);}printf("\n");}
}
int main(){int len,width;char ch;printf("Enter len,width,ch:");// 接收一个空格 scanf("%d%d %c",&len,&width,&ch);matrix(len,width,ch);return 0;
}
4. 使用函数求最大公约数和最小公倍数:输入两个正整数m和n(0<m,n<=1000),输出最大公约数和最小公倍数。要求定义和调用函数gcd(m,n)计算m和n的最大公约数,定义和调用函数lcm(m,n)计算m和n的最小公倍数。
输入输出实例
Enter m,n:511 292
gcd = 73
lcd = 2044
#include <stdio.h>
/*** 最大公约数 */
int gcd(int m,int n){int c = m%n;while(c){m = n;n = c;c = m%n;}return n;
}
/*** 最小公倍数 */
int lcm(int m,int n){// 选出 m 和 n 中大的一个 int c=(m>n?m:n);while(1){// 如果 c 同时能被 m 和 n 整除 if(!(c%m)&&!(c%n)){break;}c++;}return c;
}
int main(){int m,n;printf("Enter m,n:");scanf("%d%d",&m,&n);if(m<0 || n<0 || n>1000 || m>1000 ){printf("Error!\n");return 0;}printf("gcd = %d\n",gcd(m,n));printf("lcd = %d\n",lcm(m,n));return 0;
}