传递给函数的变量不会设置为我赋给它的值

时间:2015-07-31 08:09:13

标签: c memory variable-assignment

为了从给定数字的左边返回第i个数字,我创建了这个函数:

count

但是,当函数的输入为2,2时。这个功能花了很多时间来芬兰语; 所以我抬头看了调试器,发现0int main() { int x, i,result; do { printf("Enter a number and the digit you want to retrieve.\nEnter a negative number to exit\n"); scanf("%ul %d", &x, &i); if (x<0) { printf("Operation Aborted.. Exiting....\n"); break; } else { result = ith(x, i); if (result == -1) { printf("Error: There are no such amount of digits to retrieve from that location\n"); continue; } printf("The %dth digit of the number %ul is %d\n", i, x, result); } } while (x >= 0); } 从未收到我分配给他的{{1}}。

修改 这是我的其余代码,因为有些建议可能是此错误的来源。

{{1}}

1 个答案:

答案 0 :(得分:1)

这一行

scanf("%ul %d", &x, &i);

x中使用错误的说明符进行扫描。

由于x定义为int,所以必须

scanf("%d %d", &x, &i);

或者您将x定义为unsigned long,然后必须

scanf("%lu %d", &x, &i);

同样的问题在这里:

printf("The %dth digit of the number %ul is %d\n", i, x, result);