-8
阵列我想一个double
变成两个int
秒的数组:双到INT
例如,当C = 0.09:
double c=0.09; ===> int tab [2] ={0, 09}
我发现tab[0]
与(int)c
,但不tab[1]
!
void char_To_Tab_Int_W(char chartab[]){
int taille=strlen(chartab);
int j=0,y=0,i,h;
while(j<taille){
char c=chartab[j]; // code ascii
printf("\n c= %d",(int)c);
h=0;
chW[0]='\0';chW[1]='\0';
while((int)c!=46){
sprintf(chW,"%s",Concat_String(chW,c));
chW[h]=c;
j++;h++;
c=chartab[j];
}// fin while et remplissage de ch
printf("\n==>ch= %s",chW);
int val= atoi(chW);
printf("\t==>val=%d",val);
tmpIntW[y]=val;
printf("\t==>tmpIntW[%d]=%d",y,tmpIntW[y]);
j++;y++;
}
printf("\nCharTabRecu : ");
for(i=0;i<y;i++){
printf("%d ",tmpIntW[i]);
}
}
而且在main()
:
int main(){
double w=0.09;
printf("w1=%d", (int)w);
printf("\nreste= %f" ,(w-(int)w));
int j;
char chartabw[100];
sprintf(chartabw, "%f", w);
char_To_Tab_Int_W(chartabw); // je rempli tmpIntTabRecu
printf("\nTabW : ");
for(j=0;j<2;j++){
tabW[j]=tmpIntW[j];
printf("%d ",tabW[j]);
}
return 0;
}
但是这并没有给我结果。
有什么想法?
1)想想。 2)做一些数学。 3)使用笔,纸和咖啡。 4)编写代码。 –
您不能存储'09'。前面的'0'表示它是一个八进制数,但'9'不是有效的八进制数。所以,'int tab [2] = {0,09};'产生一个错误:'错误:八进制常量中的无效数字“9”。你唯一的希望就是在'tab [1]'中存储'9'。 –
我投票结束这个问题作为题外话,因为这不是“做我的家庭作业”服务。 – Olaf