#2984: 哪裡錯了


firejox (tangent)


#include<stdio.h> #include<stdlib.h> #include<string.h>  int power(int e){ 	int t=1; 	if(!e){return t;} 	else{do{ 		t*=10;e--; 		}while(e); 	return t;} } int main(void){ 	char *b[30]; 	char c[16]={'壹','貳','參','肆','伍','陸','柒','捌','玖','什','佰','仟','萬','億','零'}; 	static int len=9; 	static int a; 	int f,g; 	int k[10]; 	scanf("%d",&a); 	for(f=0;f<10;f++){g=power(f);k[f]=g;} 	while((a/k[len])!=0){ 		len--; 	} 	for(;;){ 		static int z=0; 		if(a/k[len]==1){b[z]=&c[0];} 		else if(a/k[len]==2){b[z]=&c[1];} 		else if(a/k[len]==3){b[z]=&c[2];} 		else if(a/k[len]==4){b[z]=&c[3];} 		else if(a/k[len]==5){b[z]=&c[4];} 		else if(a/k[len]==6){b[z]=&c[5];} 		else if(a/k[len]==7){b[z]=&c[6];} 		else if(a/k[len]==8){b[z]=&c[7];} 		else if(a/k[len]==9){b[z]=&c[8];} 		else{ 			int q=0; 			b[z]=&c[14]; 			a%=k[len];z++; 			while(a<k[q]){q++;len=q;} 			continue;} 		} 		if(a%k[len]==0){break;} 		if(len==9){b[z+1]=&c[9];b[z+2]=&c[13];z+=2;} 		else if(len==8){b[z+1]=&c[13];z++;} 		else if(len==7){b[z+1]=&c[11];b[z+2]=&c[12];z+=2;} 		else if(len==6){b[z+1]=&c[10];b[z+2]=&c[12];z+=2;} 		else if(len==5){b[z+1]=&c[9];b[z+2]=&c[12];z+=2;} 		else if(len==4){b[z+1]=&c[12];z++;} 		else if(len==3){b[z+1]=&c[11];z++;} 		else if(len==2){b[z+1]=&c[10];z++;} 		else{b[z+1]=c[9];z++;}	 		a%=k[len];len--; 	} 	puts(b); 	return 0; }
#2988: Re:哪裡錯了


example (學姊)


 建議你排個版吧 ...