【综合文库】
性质3如果a=b,则a和b的最大公约数与a值和b值相同,即Gcd(a, b) = a = b
要求如下:
(1)从键盘任意输入的两整数
主函数调用Gcd()函数,并输出两整数的最大公约数。 (2)Gcd函数原型为:int Gcd(int a, int b);
如果输入的数不是正整数,则返回-1,否则,返回两个数的最大公约数。 (3)**输入提示信息格式要求:\输入两个整数时用,号分隔**输出提示信息要求:
如果输入的数不是正整数,则输出\,否则按如下格式输出\参考答案
#includeint Gcd(int a, int b); int main() {
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; while (a != b) {
if (a > b)
a = a - b; else if (b > a) b = b - a; }
return a; }
Q357.(10分)某班期终考试科目为高等数学MT,英语EN和物理PH,有5人参加考试。为评定奖学金,要求统计并输出一个表格,表格内容包括学号、各科分数、总分和平均分,并标出三门课均在90分以上者(该栏标志输出“Y”,否则输出“N”),表格形式如下: NO MT EN PH SUM V >90
------------------------------------------------------ 1 88 87 83 258 86 N 2 69 90 88 247 82 N 3 77 70 79 226 75 N 4 96 99 98 293 97 Y 5 77 88 90 255 85 N
**输入格式要求:\提示信息:\**输出格式要求:
\
\\参考答案
#includemain() {
int i, j, a[5][4], s = 0; char c;
for (i = 0; i <= 4; i++) {
printf(\for (j = 0; j <= 3; j++)
scanf(\}
printf(\
printf(\for (i = 0; i <= 4; i++) {
printf(\for (s = 0, j = 1; j <= 3; j++) {
s += a[i][j];
printf(\}
if (a[i][1] >= 90 && a[i][2] >= 90 && a[i][3] >= 90) c = "Y"; else c="N";
printf(\} }
Q240.(10分)有5个人围坐在一起,问第5个人多大年纪,他说比第4个人大2岁;问第4个人,他说比第3个人大2岁;问第3个人,他说比第2个人大2岁;问第2个人,他说比第1个人大2岁。第1个人说自己10岁,请利用递归法编程计算并输出第5个人的年龄。 **输出格式要求:\
参考答案
#include
unsigned int ComputeAge(unsigned int n); main() {
unsigned int n = 5;
printf(\}
/* 函数功能:用递归算法计算年龄 */ unsigned int ComputeAge(unsigned int n) {
unsigned int age; if (n == 1) {
age = 10; } else {
age = ComputeAge(n - 1) + 2; }
return age; }
Q530.(10分)用函数编写计算整数n的阶乘n!。 **输入格式要求:\提示信息:\**输出格式要求:\程序运行示例如下: Input m:5 5! = 120 参考答案
#include
longFact(intn); /* 函数原型声明 */ int main() {
intm; long ret;
printf(\scanf(\
ret = Fact(m); /* 调用函数Fact(),并将函数的返回值存入ret */ printf(\return 0; }
/* 函数功能:用迭代法计算n! */
longFact(intn) /* 函数定义 */
{
inti;
long result = 1;
for (i = 2; i <= n; i++) {
result *= i; }
return result; }
Q109.(15分)按如下函数原型,采用欧几里德算法编写计算两个整数的最大公约数的函数Gcd()。欧几里德算法,也称辗转相除法。其基本思想是:对正整数a和b,连续进行求余运算,直到余数为0为止,此时非0的除数就是最大公约数。 /* 函数功能:计算a和b的最大公约数,输入负数时返回-1 */ int Gcd(int a, int b) 要求如下:
(1)从键盘任意输入的两整数
主函数调用Gcd()函数,并输出两整数的最大公约数。 (2)Gcd函数原型为:int Gcd(int a, int b);
如果输入的数不是正整数,则返回-1, 否则,返回两个数的最大公约数。
(3)**输入提示信息格式要求:\输入两个整数时用,号分隔**输出提示信息要求:
如果输入的数不是正整数,则输出\否则按如下格式输出\参考答案
#includeint Gcd(int a, int b); main() {
int a, b, c;
printf(\
scanf(\c = Gcd(a,b);//2 if (c != -1)//1 {
printf(\}
else//1{
printf(\ }
}
int Gcd(int a, int b)//1 {
int r;
if (a <= 0 || b <= 0)//2{
return -1;//1}do{
r = a % b;//1 a = b;//1 b = r;//1
}while (r != 0);//e2returna; //1 }
Q224.(10分)某人在国外留学,不熟悉当地天气预报中的华氏温度值,请编程按每隔10°输出-40°到110°之间的华氏温度到摄氏温度的对照表,以方便他对照查找。已知华氏和摄氏温度的转换公式为C=5/9*(F-32),其中,C表示摄氏温度,F表示华氏温度。 **输出格式要求:\程序运行示例如下: -40-40.0-30-34.4-20-28.9-10-23.30-17.8 10-12.2 20 -6.7 30 -1.1 404.4 50 10.0 60 15.6 70 21.1 80 26.7 90 32.2100 37.8110 43.3 参考答案
#includemain() {
intfahr; floatcelsius;
for (fahr = -40; fahr <= 110; fahr = fahr + 10)
查看全文
false