C 程序在用户输入后结束
我编写的程序在用户输入后停止,我不知道为什么会发生这种情况。用户应该给出6个整数,然后程序应该用它做一些数学运算,但现在不是这样,因为在插入整数后,它结束了,没有错误C 程序在用户输入后结束,c,input,user-input,C,Input,User Input,我编写的程序在用户输入后停止,我不知道为什么会发生这种情况。用户应该给出6个整数,然后程序应该用它做一些数学运算,但现在不是这样,因为在插入整数后,它结束了,没有错误 #include <stdlib.h> #include <stdio.h> int main(int argc, char *argv[]) { int T,i; int x[5]; scanf("%d", &T); while(T > 0)
#include <stdlib.h>
#include <stdio.h>
int main(int argc, char *argv[]) {
int T,i;
int x[5];
scanf("%d", &T);
while(T > 0) {
for(i = 0; i <= 4; i++) {
scanf("%d", &x[i]);
}
int size_tax = x[0] + x[1] + x[2];
int tax[size_tax];
for(i = 0; i <= size_tax; i++) {
if(i == 0) {
tax[i] = x[0];
if(x[4] == 1) {
printf("%d", tax[0]);
break;
}
} else if(i > 0 && i <= x[1] - 1) {
tax[i] = tax[i-1] + 1;
if(x[4] == i + 1) {
printf("%d", tax[i]);
break;
}
} else if(i > x[1] - 1 && i <= x[2] - 1) {
tax[i] = tax[i-1] * 2;
if(x[4] == i + 1) {
printf("%d", tax[i]);
break;
}
}
}
if(x[4] > x[0] + x[1] + x[2]) {
int result = x[3] - 1;
for(i = x[3]; i <= x[4] - 1; i++) {
result = result * x[i];
}
printf("%d", result);
}
T--;
}
}
#包括
#包括
int main(int argc,char*argv[]){
int T,i;
int x[5];
scanf(“%d”、&T);
而(T>0){
对于(i=0;i而言,问题在于:
int tax[size_tax];
for(i = 0; i <= size_tax; i++) {
...
}
如果您测试的输入是123456,那么这是完全正常的。只需在最后一个else If之后插入一个else。
此输入似乎无法验证任何其他条件。哪个用户输入?在while循环之前?您有两个scanf()调用。是哪一个导致了问题?int-tax[size\u-tax]
无效。您不能像那样初始化数组。size\u-tax在运行时动态确定,在编译时不可用。您需要malloc()首先是一些内存…@MarcB:C具有可变长度数组。如果使用调试器,程序工作正常。您的输入是否与其中一个print语句匹配?如果您全部执行6次,它将打印出1。
for(i = 0; i < size_tax; i++) { // Less than, not less than or equal to
...
}