利用最大公约数的性质计算。对正整数a和b,当a>b时,若a中含有与b相同的公约数,则a中去掉b后剩余的部分a-b中也应含有与b相同的公约数,对a-b和b计算公约数就相当于对a和b计算公约数。反复使用最大公约数的上述性质,直到a和b相等为止,这时,a或b就是它们的最大公约数。这三条性质,也可以表示为:
性质1 如果a>b,则a和b与a-b和b的最大公约数相同,即Gcd(a, b) = Gcd(a-b, b) 性质2 如果b>a,则a和b与a和b-a的最大公约数相同,即Gcd(a, b) = Gcd(a, b-a) 性质3 如果a=b,则a和b的最大公约数与a值和b值相同,即Gcd(a, b) = a = b
程序运行结果示例1: Input a,b:16,24↙ 8
程序运行结果示例2: Input a,b:-2,-8↙ Input error!
输入提示信息:\输入格式:\ 输出格式:
输出最大公约数:\
输入错误提示信息:\
注意:为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串!
#include
int a, b, c;
printf(\ scanf(\ c = Gcd(a, b); if ( c!= -1)
printf(\ else
printf(\ return 0; }
int Gcd(int a, int b) {
if (a <= 0 || b <= 0) return -1; if (a == b)
return a;
else if (a > b)
return Gcd(a - b, b); else
return Gcd(a, b - a); }
3寻找中位数v1.0(4分)
题目内容:
编写一个函数返回三个整数中的中间数。函数原型为: int mid(int a, int b, int c); 函数功能是返回a,b,c三数中大小位于中间的那个数。 输入格式: \
输出格式:\ 输入样例1: 12 6 18↙ 输出样例1: The_result_is_12 输入样例2: -9 7 -2↙ 输出样例2: The_result_is_-2
注意:为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串! (注意:在输出中,“_”代表空格,如果直接将上段示例粘贴到代码中,应将其替换为空格。)
#include
int mid(int a, int b, int c); int main(){ int a,b,c;
scanf(\
printf(\ return 0; }
int mid(int a, int b, int c) {
int j,i,t;
int m[3]={a,b,c}; for (i=0;i<2;i++)
for (j=i;j<=2;j++) if (m[j]>m[i]) { t=m[j]; m[j]=m[i]; m[i]=t; } return m[1];
}
4还原算术表达式(4分)
题目内容:
编写程序求以下算式中XYZ的值,其中两数XYZ与YZZ相加的和n(99 程序运行结果示例1: Input n(n<1000): 532↙ X=3,Y=2,Z=1 程序运行结果示例2: Input n(n<1000): 977↙ Invalid 输入提示:\Input n(n<1000):\\n\ 输入格式: \ 输出格式:\ 计算不成功(无解)的输出提示:\ 注意:为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串! #include int mid(int a, int b, int c); int main() { int x,y,z,n; printf(\ scanf(\ for (x=1;x<=9;x++) { for (y=1;y<=9;y++) { for (z=1;z<=9;z++) { if ((x*100+y*10+z+y*100+z*10+z)==n) { printf(\ return 0; } } } } printf(\ return 0; } 第8周—— 一堆数据来了,你准备好了吗 1矩阵转置v1.0(4分) 题目内容: 用二维数组作为函数参数,编程计算并输出n×n阶矩阵的转置矩阵。其中,n的值不超过10,n的值由用户从键盘输入。 程序运行结果示例1: Input n:3↙ Input 3*3 matrix: 1 2 3↙ 4 5 6↙ 7 8 9↙ The transposed matrix is: 1 4 7 2 5 8 3 6 9 程序运行结果示例2: Input n:2↙ Input 2*2 matrix: 1 2↙ 4 5↙ The transposed matrix is: 1 4 2 5 输入提示信息: 提示输入矩阵的阶数:\ 提示输入矩阵数据:\输入格式: \ 输出提示信息:\输出格式:\ 注意:为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串! #include int main() { int matrix[N][N]; int i,j,n; printf(\ scanf(\ printf(\ for(i=0;i for(j=0;j scanf(\ } } int k,q,temp; for(k=0;k for(q=k+1;q temp=matrix[k][q]; matrix[k][q]=matrix[q][k]; matrix[q][k]=temp; } } printf(\ for(i=0;i for(j=0;j printf(\ } printf(\ 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库中国大学C语言程序题(5)在线全文阅读。
相关推荐: