北理工C语言编程网上作业答案,图形与递归

2018-12-22 23:10

41.输出字符回形阵

成绩: 10 / 折扣: 0.8

输入图形行数N和中心字符,输出如图所示回形方阵。 例如,输入:5 Z 输出如下图形: X X X X X X Y Y Y X X Y Z Y X X Y Y Y X X X X X X

注:N<24,且N是奇数。

1. #include 2. void main() 3. {int i,j,N;

4. char k,b,c,d,a;

5. scanf(\,&N,&k); 6. if(N%2==0)

7. printf(\,N); 8. else if(N<24)

9. { for(i=1;i<=N;i++) 10. { for(j=1;j<=N;j++) 11. { b=k-N/2+i-1; 12. c=k-N/2+N-j; 13. d=k-N/2+j-1; 14. a=k-N/2+N-i; 15. if(i<=j && i<=(N-j+1)) 16. {if(k<=90 && b<=64) b=90-(64-b)&; 17. if(k>=97 && b<=96) b=122-(96-b)&; 18. printf(\,b);} 19. if(i<=j && i>(N-j+1)) 20. {if(k<=90 && c<=64) c=90-(64-c)&; 21. if(k>=97 && c<=96) c=122-(96-c)&; 22. printf(\,c);} 23. if(i>j && i<=(N-j+1)) 24. {if(k<=90 && d<=64) d=90-(64-d)&; 25. if(k>=97 && d<=96) d=122-(96-d)&; 26. printf(\,d);} 27. if(i>j && i>(N-j+1)) 28. {if(k<=90 && a<=64) a=90-(64-a)&; 29. if(k>=97 && a<=96) a=122-(96-a)&;

30. printf(\,a);} 31. if(j!=N) printf(\);} 32. printf(\);} 33. } 34. }

42 子串反向——递归

成绩: 10 / 折扣: 0.8

请编写一个递归函数 reverse(char str[], int start, int end ) ,该函数的功能是将串 str 中下标从 start 开始到 end 结束的字符颠倒顺序。假设 start 和 end 都在合理的取值范围。 例如:

执行前:str[]=\;start=1 ;end=4 执行后:strr[]=\

要求在该函数中不使用新的数组,没有循环。

注意:只需要编写递归函数 reverse,系统中已经设置好了main函数。

预设代码 前置代码

view plaincopy to clipboardprint?

1. /* PRESET CODE BEGIN - NEVER TOUCH CODE BELOW */ 2.

3. #include 4. int main( )

5. { char str[100]; 6. int start, end; 7. gets(str);

8. scanf(\, &start, &end); 9. reverse( str, start, end ); 10. printf(\, str); 11. return 0; 12. } 13.

14. /* PRESET CODE END - NEVER TOUCH CODE ABOVE */ 15. #include 16. int reverse(char str[],int start,int end) 17. { 18. int i,n,m,l,h,k; 19. char t; 20. l=strlen(str); 21. if(end>=(l-1)) 22. { 23. h=l-1+start; 24. k=l-1-start; 25. for(i=start;i<=(start+k/2);i++) 26. { 27. t=str[h-i]; 28. str[h-i]=str[i]; 29. str[i]=t; 30. } 31. } 32. else 33. { 34. m=end-start; 35. n=end+start; 36. for(i=start;i<=(start+m/2);i++) 37. { 38. t=str[i]; 39. str[i]=str[n-i]; 40. str[n-i]=t; 41. } 42. } 43. return str; 44. }

44. 函数递归

成绩: 10 / 折扣: 0.8

编写一个函数,使用递归算法求满足下述定义的整数序列的第n项。 f( n ) =

1

f(n-1) + f(n-3) f(n-2) + f(n-4) -1

当 n >= 0 且 n <= 4 时 当 n > 4 且n为偶数 时 当 n > 4 且n为奇数 时 其他

函数原型如下:

int findf(int n);

参数说明:n 项数;返回值是第n项值。 例如输入:10,输出:8

预设代码 前置代码

view plaincopy to clipboardprint?

1. /* PRESET CODE BEGIN - NEVER TOUCH CODE BELOW */ 2.

3. #include 4.

5. int main()

6. { int n,s, findf( int ); 7. scanf(\, &n); 8. s = findf(n);

9. printf(\, s); 10. return 0; 11. } 12. 13. /* PRESET CODE END - NEVER TOUCH CODE ABOVE */ 1. 2. 3. 4. 5. 6. 7. 8. 9.

int findf(int n) {

int i;

if(n>=0&&n<=4) i=1;

if(n>4&&n%2==0) i=findf(n-1)+findf(n-3); if(n>4&&n%2==1) i=findf(n-2)+findf(n-4); if(n<0) i=-1; return i; }


北理工C语言编程网上作业答案,图形与递归.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:档案馆新顺序表

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: