Kullanıcının ondalık sayı girdiği bir tabandan bir sayıyı dönüştüren bir program yapmalıyım. Bu kodu yapılmış ama işlevini parametre olarak char array geçmesine sorun yaşıyorum:Bir char dizisini C'deki bir işleve parametre olarak nasıl geçirebilirim?
int base_decimal(char x[100], int y){
int tot = 0;
int p = 1;
int arr[100];
int i,a,j = 100;
for(i=0;i<100;i++){
printf(" %s ", x[i]);
switch(x[j]){
case 'a': arr[i] = 10;
break;
case 'b': arr[i] = 11;
break;
case 'c': arr[i] = 12;
break;
case 'd': arr[i] = 13;
break;
case 'e': arr[i] = 14;
break;
case 'f': arr[i] = 15;
break;
default: arr[i] = atoi(&x[j]);
break;
}
j--;
}
for(a = 0; i<100;a++){
tot += arr[a] * pow(y,a);
}
return tot;
}
ana:
void main(void) {
int b, x=0;
char n[100];
int num;
printf("type de number: \n");
scanf("%s", n);
fflush(stdin);
printf("type de base:\n");
scanf("%i", &b);
num = base_decimal(n, b);
printf("The number %i in decimal is: %i ", b, num);
}
Ben kodu, program çöker çalıştırdığınızda.
Birisi bana yardım edebilir mi ??? Kötü İngilizce :)
teşekkürler fark etmeyin, ben sadece C programlamaya başlıyorum ve birçok zorluk var. Tekrar, yardım için teşekkürler. – puddaa03