9.23——scanf("%d%d%d",&n,&aa[0],&aa[1])后n==3,aa[0]==2,aa[1]==1,aa[2]~aa[9]==0。for(i=1i<ni++) sub(i,aa)实际就是sub(1,aa)sub(2,aa)。第一次调用sub(1,aa)中t=uu[n--]是t=uu[1]==aa[1]==1;t+=3*uu[n]-->t=t+3*aa[0]=1+3*2==7;然后n++恢复n==1。由于t>=10不成立,执行uu[1]=t使aa[1]=7。第二次调用sub(2,aa)中t=uu[2]==aa[2]==0;t+=3*uu[n]-->t=t+3*aa[1]=0+3*7==21;这时t>=10成立,执行{uu[n++]=t/10和uu[n]=t%10,前者uu[2]=21/10==2,即aa[2]==2; 后者uu[3]=21%10==1,即aa[3]==1。主函数中for(i=0i<=ni++) printf("%d",aa[i])输出aa[0]~aa[3],由于"%d"中的d后没有间隔,所以屏幕上就是2721,实际只是2、7、2、1四个数连起来了,并不是2721一个整数。
9.25——你不知道for的()中的第一个分号前的语句只在进入循环时执行一次吗?当for循环一次后p==1了,而k还是0,这不是就不等了吗?所以k保存了元素值最大的元素下标。
9.26——题目说了:num[0]中是'A'的个数,依次类推,意思是说num[1]中就是'B'的个数,num[2]中就是'C'的个数……num[25]中就是'Z'的个数。若c=='B',num[c-'A']不就是num['B'-'A'],这也就是num[1]呀,不刚好与num[1]存放'B'的个数对应吗?
%-8.2f\\n,先说%-8.2f,你应该知道%f吧,那%8.2f表示这个实数
共8位,这8位是说
整数部分
加上小数部分再加上小数点!那个2是表示小数的个数为2,不包括小数点。那么整数部分是5位。%8.2f里面没有负号是说数是右对齐的,就是说数是靠右边对齐的,%-8.2f就是数是左对齐的。如果整数部分超过五位比如123456.123那么整数部分全部输出,小数还是保留两位,即123456.12
1、8 10 162、x=6,
x=6,y=6
3、15
4、B
5、A
6、A
7、无限次 //k=1为赋值语句,总是覆盖以前的值,k==1才是条件语句
8、7
9、5 //x*x=2+1*2+1
10、n1=%d\n,n2=%d max=(a>b?a:b)
11、a[0]max=a[i]
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)