1条回答 默认 最新
- 技术专家团-小桥流水 2021-10-29 23:04关注
Fun9函数中,j是static int,它的值一直增加。在Fun9(a,s)后再去计算Fun(a,C),Fun9(a,s)中的j会对Fun9(a,s)中的j产生影响。
所以在Fun(a,C)的时候,j并不是从0开始的,所以相当于C中前面的部分没有赋值。所以会出现烫烫烫
代码一:(这个函数实现逆序输出数字,比如n=123,输出的s是"321")void Funt9(int n,char s[]) { if(n==0) *s = 0; else { *s = '0'+ n%10; Funt9(n/10,s+1); } }
代码二:(正序输出,n=123,s输出"123")
#include <stdio.h> void Funt9(int n,char s[]) { int i,k; static int j = 0; char c; if(n == 0) { s[j] = 0; //这里实现字符串s的逆序,j是字符串s的长度 for(i=0,k=j-1;i<k;i++,k--) { c = s[i]; s[i] = s[k]; s[k] = c; } j = 0; //这里j置0,避免对下一次调用Funt9时产生影响。 }else { s[j] = '0'+ n%10; j++; Funt9(n/10,s); } } int main() { char s[10],C[10]; int a = 12345; int b =789; int j = 0; Funt9(a,s); //得到的s是正序输出 Funt9(b,C); printf("%s\n",s); printf("%s\n",C); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
- ¥20 神经网络Sequential name=sequential, built=False
- ¥16 Qphython 用xlrd读取excel报错
- ¥15 单片机学习顺序问题!!
- ¥15 ikuai客户端多拨vpn,重启总是有个别重拨不上
- ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)
- ¥15 相敏解调 matlab
- ¥15 求lingo代码和思路
- ¥15 公交车和无人机协同运输
- ¥15 stm32代码移植没反应