mooc哈工大c语言作业答案,中国大学mooc-哈工大-c语言程序设计精髓第六-十二周编程题答案...

41528d3028836879cd698677c3999917.gif中国大学mooc-哈工大-c语言程序设计精髓第六-十二周编程题答案

6.1 下面代码的功能是将百分制成绩转换为 5 分制成绩,具体功能是:如果用户输入的是非法字符或者不在合理区间内的数据(例如输入的是 a,或者 102,或-45 等) ,则程序输出 error!,并允许用户重新输入,直到输入合法数据为止,并将其转换为 5 分制输出。目前程序存在错误,请将其修改正确。并按照下面给出的运行示例检查程序。#include#include int main(){char score[100];int flag = 0, i, s;char grade;printf(“Please score:\n“);while (1){flag=0;scanf(“%s“, score);for (i = 0; i = 0 printf(“Please score:\n“);continue;}else{break;}}s = atoi(score);if (s = 90){grade = A ;}else if (s = 80){grade = B ;}else if (s = 70){grade = C ;}else if (s = 60){grade = D ;}else{grade = E ;}printf(“grade: %c\n“, grade);return 0;}6.2 编程计算 a+aa+aaa+…+aa…a(n 个 a)的值(4 分)题目内容:编程计算 a+aa+aaa+…+aa…a( n 个 a)的值,n 和 a 的值由键盘输入。例如,当 n=4,a=2,表示计算2+22+222+2222 的值。#include#includeint main(){int n,a,i,j;double p=0,q=0;printf(“ a,n:\n“);scanf( “%d,%d“,for(i=1;iint main(){int year,month,day;printf(“ year,month:\n“);scanf(“%d,%d“,switch(month){case 1: day=31;break;case 2: day=28;break;case 3: day=31;break;case 4: day=30;break;case 5: day=31;break;case 6: day=30;break;case 7: day=31;break;case 8: day=31;break;case 9: day=30;break;case 10: day=31;break;case 11: day=30;break;case 12: day=31;break;default:day=-1;printf(“ error!\n“);}if((year%4==0if (day!=-1)printf(“%d days\n“,day);return 0;}7.1 递归法计算游戏人员的年龄( 4 分)题目内容:有 n 个人围坐在一起,问第 n 个人多大年纪,他说比第 n-1 个人大 2 岁;问第 n-1 个人,他说比第 n-2 个人大 2 岁 ,.,问第 3 个人,他说比第 2 个人大 2 岁;问第 2 个人,他说比第 1 个人大 2 岁。第 1 个人说自己 10 岁,问第 n 个人多大年纪。递归函数原型:unsigned int ComputeAge(unsigned int n);提示:计算年龄的递归公式为:#include unsigned int ComputeAge(unsigned int n){}main(){int i, j, k, s = 23, n, c, age;scanf(“%d“, printf(“The person s age is %u\n“,8+2*n);}7.2 递归法计算两个数的最大公约数( 4 分)题目内容:利用最大公约数的性质计算。对正整数 a 和 b,当 ab 时,若 a 中含有与 b 相同的公约数,则a 中去掉 b 后剩余的部分 a-b 中也应含有与 b 相同的公约数,对 a-b 和 b 计算公约数就相当于对 a 和 b 计算公约数。反复使用最大公约数的上述性质,直到 a 和 b 相等为止,这时,a 或 b就是它们的最大公约数。这三条性质,也可以表示为: 性质 1 如果 ab,则 a 和 b 与 a-b 和 b 的最大公约数相同,即 Gcd(a, b) = Gcd(a-b, b)性质 2 如果 ba,则 a 和 b 与 a 和 b-a 的最大公约数相同,即 Gcd(a, b) = Gcd(a, b-a)性质 3 如果 a=b,则 a 和 b 的最大公约数与 a 值和 b 值相同,即 Gcd(a, b) = a = b#include int gys(int a,int b){int r;r=a%b;if(r==0) return b;else return gys(b,r);}main(){printf(“ a,b:“);int a,b;scanf(“%d,%d“, if (aint median(int a, int b, int c){if(aa){return a;}//cabelse{return cb? c: b;}//acb: abc}}main(){int a,b,c;scanf(“%d%d%d“, printf(“The result is %d\n“,median (a,b,c));}7.4还原算术表达式(4 分)题目内容:编写程序求以下算式中 XYZ 的值,其中两数 XYZ 与 YZZ 相加的和 n(99main(){printf(“ n(nint main(){printf(“ n:“);int n;scanf(“%d“,printf(“ %d*%d matrix:\n“,n,n);int m[n][n],i,j;for (i=0;iint main(){printf(“ n(nint main(){int i,j,k,m,tk,tm;for (i=0;iint main(){int a[5][5],i,j,t,row[5]={0},col[5]={0},dl1=0,dl2=0,flag=1;for (i=0;iint main(){int log[10]= {0},a[100];int b,i=0,n,c,d;printf(“ n:\n“);scanf(“%d“,while(n!=0){b=n%10;n/=10;a[i]=b;i++;}a[i]=n;int flag=0;for(c=0; cint IsCancel(int a[], int n, int k){int i,s=0;for (i=0;i#includemain(){int a[100][100],m;int n,i,j,k,max,flag=0,shit=0,l;printf(“ m,n:\n“);scanf(“%d,%d“,printf(“ matrix:\n“);for(i=0; im

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值