C语言程序设计慕课下编译答案(完美)

上传人:yh****1 文档编号:125937994 上传时间:2020-03-21 格式:DOC 页数:35 大小:61.50KB
返回 下载 相关 举报
C语言程序设计慕课下编译答案(完美)_第1页
第1页 / 共35页
C语言程序设计慕课下编译答案(完美)_第2页
第2页 / 共35页
C语言程序设计慕课下编译答案(完美)_第3页
第3页 / 共35页
C语言程序设计慕课下编译答案(完美)_第4页
第4页 / 共35页
C语言程序设计慕课下编译答案(完美)_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《C语言程序设计慕课下编译答案(完美)》由会员分享,可在线阅读,更多相关《C语言程序设计慕课下编译答案(完美)(35页珍藏版)》请在金锄头文库上搜索。

1、 .1 求最大公约数和最小公倍数(15分)#include int fun1( int m, int n) /辗转相除法求m/n的公约数int r; while (n) r=m % n; m=n; n=r; return m; int fun2(int m,int n) /最小公倍数 return m*n/fun1(m,n);int main() int a,b; scanf(%d,%d,&a,&b); /输入 printf(最大公约数:%dn最小公倍数:%dn,fun1(a,b),fun2(a,b); return 0;2排序并插入(15分)#include void InsertionSo

2、rt(int* arr, int n) / 插入排序 int *last = 0, *next = 0, key = 0, i = 0; for (i = 1; i n; +i) next = arr + i, key = *next; if (key *arr) / 将待插的数据比第一个数据小,直接插到最前面。 for (last = next; next != arr; next = last) *next = *-last; *arr = key; else / 否则从后往前遍历,找到第一个小于关键字的位置插入。 for (last = next; key *-last; next =

3、last) *next = *last; *next = key; void OutPutArray(const int* arr, int n) / 打印一个数组int i; for (i = 0; i n; +i) printf(%d, arri); if(in-1)printf(,); printf(n); void InsertNumber(int* arr, int n) int key = 0, i = 0; InsertionSort(arr, n - 1); / 对之前的n-1个数排序 / OutPutArray(arr, n - 1); / 这里可以打印出来看一下对之前的数据

4、排序是否正确 scanf(%d, &key); / 输入一个数 if (key arr0) / 参照之前的插入排序原理,将这个数插入到数组。 for (i = n-1; 0 i; -i) arri = arri - 1; arr0 = key; else for (i = n-2; key arri; -i) arri + 1 = arri; arr+i = key; int main() int arr10 = 0 ; scanf(%d,%d,%d,%d,%d,%d,%d,%d,%d / 输入9个数 , arr + 0, arr + 1, arr + 2, arr + 3, arr + 4,

5、 arr + 5, arr + 6, arr + 7, arr + 8); InsertNumber(arr, 10); / 调用函数,将输入的第10个数插进去。 OutPutArray(arr, 10); / 输出 return (0);3.最大公约数#include int fun1( int m, int n) /辗转相除法求m/n的公约数int r; while (n) r=m % n; m=n; n=r; return m; int main() int a,b; scanf(%d,%d,&a,&b); /输入 printf(%dn,fun1(a,b); return 0;4.奇数球

6、和#includeint main() int n; int sum(int n); scanf(%d,&n); printf(%dn,sum(n); int sum(int n) int b; if(n1) b=sum(n-1)+2*n-1; if(n=1) b=1; return b;5.巧算自然数#includeint step = 1;void fc(int n)/输出n这个数并按角谷猜想对n做处理以便进入下一步。返回值是总步数。 if(n = 1) printf(%d,n); return; else if(n%2 = 0) printf(%d,n); fc(n/2); step+;

7、 else printf(%d,n); fc(n*3+1); step+; int main(int argc, char* argv) int n; scanf(%d,&n); fc(n); printf(nstep=%dn,step); return 0;6.卖鸭子#include int main()static int i,x8;x7=2;for(i=7;i=0;i-)xi-1=(xi+1)*2;printf(sum=%dn,x0);for(i=0;i7;i+)printf(sell=%d,xi-xi+1);printf(n);return 0;7.各位数字之和int add(int

8、s) if (s10) return s; else return s%10+add(s/10); int main(int argc, char *argv) int a,b;scanf(%d,&a); b=add(a); printf(%d,b); return 0; 对称字符串#include #include main() char a100; int i,j; gets(a);i=0;j=strlen(a)-1;while(i=j) printf(YESn);else printf(NOn);指针排序#include void sort(int *p,int n); void sor

9、t(int *p,int n) int i,j; int temp=0; for(i=0;in;i+) for(j=0;jpj+1) temp=pj; pj=pj+1; pj+1=temp; int main() int i; int a10; for(i=0;i10;i+) scanf(%d,&ai); int *p=a; sort(a,10); for(i=0;i10-1;i+) printf(%d,*(p+); printf(%dn,*p); return 0; 查找数#include void find(int *p,int element,int n); void find(int *p,int element,int n) int i,flag=0; for(i=0;in;i+) flag+; if(element = pi) printf(%dn,pi); break; if(flag = n) printf(Non); int main() int i; int a10; for(i=0;i10;i+) scanf(%d,&ai); int *p=a; int num; scanf(%d,&num); find(p,num,10);

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 设计及方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号