弄清楚“符合条件的最后一项”和“不符合条件的第一项”
#include<stdio.h>
void main(){
int i,n,r,a[33];
while(scanf("%d%d",&n,&r)!=EOF){
i=0;
if(n<0){
printf("-");
n=-n;
}
while(n){
//=while(n!=0) 等于0时跳出,假设一共C个
a[i]=n%r;//a[0],a[1],a[2],……,a[C-1]
n/=r;
i++;//最后i=C
}
while(i--){
//a[C-1],a[C-2],……,a[3],a[2],a[1],a[0] while(i--)是先使用再自减,所以是判断的是C>0? C-1>0? 1>0?但是使用的是C-1,c-2 0
if(a[i]<10)
printf("%d",a[i]);
else
printf("%c",a[i]-10+'A');
}
printf("\n");
}
}
#include<stdio.h>
void main(){
int i,r,n,a[33];
while(~scanf("%d%d",&n,&r)){
if(n<0){
printf("-");
n=-n;
}
for(i=0;n;i++){
a[i]=n%r;
n/=r;
}
for(i-=1;i+1;i--){
if(a[i]<10)
printf("%d",a[i]);
else
printf("%c",a[i]-10+'A');
}
printf("\n");
}
}
总结
//while(n–) 的具体过程是 从n到1判断是否为零,下面用到n的值从n-1用到0。一共循环n次。等同于for(i=n-1;i+1;i–)
//while(n) 相当于 for(;n;)
//while() for() 很多时候区别在于判断的是当前项还是前一项还是下一项
//i++ i–自增自减运算符 先用再加,先用再减