评价我在我的for循环中有一个问题,val
被打印出来作为垃圾数据。我想知道是否这是因为当我做num[(j+1)]
它实际上递增变量J,如果是的话如何增加下一个元素而不影响for循环变量?严格从左至右在C
while ((scanf("%c",&userIN) == 1) && (userIN != '\n')) {
if(userIN >= '0' && userIN <= '9') {
num[i] = (userIN-'0');
}
else if ((userIN == '+')||(userIN == '-')||(userIN == '/')||(userIN == '*')) {
ops[i+1] = userIN;
}
i++;
}
for (j = 1; j <= i; j+2) {
if (ops[j] == '+') {
k = j;
k++;
num[k] = ((num[j]--) + (num[j]++));
printf("\n%d",(num[j]--));
val = num[k];
}
else if (ops[i] == '-') {
k = j;
k++;
num[k] = ((num[j]--) - (num[j]++));
val = num[k];
}
else if (ops[j] == '/') {
k = j;
k++;
num[k] = ((num[j]--)/(num[j]++));
val = num[k];
}
else if (ops[j] == '*') {
k = j;
k++;
num[k] = ((num[j]--) * (num[j]++));
val = num[k];
}
}
“当我做NUM [ (j + 1)]其实际增量J变量“为什么不张贴代码来增加变量?注意不要导致[未定义的行为](http://stackoverflow.com/questions/949433/why-are-these-constructs-using-undefined-behavior)! – MikeCAT
当输入流用完时,'scanf'返回'EOF',这是一个负值。在有条件的情况下,这被认为是真实的。 (while(scanf(“%c”,&userIN)== 1 && ...)'''更好的是,使用'getchar'而不是'scanf(“%c”,...)'。 –
你的问题与'j'变量的一些神奇的,不可见的增量无关。它们都是由不了解算法,也不是你自己的代码造成的。从程序员不再理解他们自己的代码的时候起,程序就没有什么好处了。在最后一次编辑时,问题和代码都不再有任何意义。 – Lundin