该程序连续两次请求用户输入,并在用户输入CTRL-D时停止。我只想将对1和0分别添加到数组a和b中。
我使用整数j来跟踪当前成对的点数。然后,我可以增加j以添加1 0对,但是如输出屏幕截图所示,未添加1和0。我在做什么错了?
注意:1 0对必须在用户输入CTRL-D之后而不是在他们进行输入时添加。
int main()
{
double a[20]; //Used to represent the 'a' in a + bi.
double b[20]; //Used to represent the 'b' in a + bi.
int j=0, n=0;
while((scanf("%lf %lf", &a[j], &b[j]))==2){
j++;
n++;
}
printf("Before\n");
for(int k=0;k<n;k++){
printf("%f %f\n", a[k], b[k]);
}
printf("J: %d, N: %d\n", j, n);
j++;
n++;
printf("J: %d, N: %d\n", j, n);
a[j] = 1.0;
b[j] = 0.0;
printf("After\n");
for(int k=0;k<n;k++){
printf("%f %f\n", a[k], b[k]);
}
return 0;
}
答案 0 :(得分:0)
您使用j
,n
来记录用户输入了多少次。
例如,如果我输入:
1 2
3 4
5 6
7 8
您的a
和b
将是:
a[0] = 1 ; b[0] = 2
a[1] = 3 ; b[1] = 4
a[2] = 5 ; b[2] = 6
a[3] = 7 ; b[3] = 8
您的j
和n
将为4
由于您要向两个数组的最后一个元素添加1
和0
,因此没有
需要在j++
和n++
中使用,只需使用a[j] = 1.0
和b[j] = 0.0(a[4] = 1.0, b[4] = 0.0)