【发布时间】:2016-07-21 22:55:08
【问题描述】:
我必须编写一个程序,从用户输入的十进制数的基数转换数字。我编写了这段代码,但无法将 char 数组作为函数的参数传递:
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;
}
主要:
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);
}
当我运行代码时,程序崩溃了。
谁能帮帮我???
抱歉英语不好:)
【问题讨论】:
标签: c arrays function parameters char