在两个数组中的最后一个元素之后添加值

时间:2018-09-19 01:00:39

标签: c arrays

该程序连续两次请求用户输入,并在用户输入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;
}

Output

1 个答案:

答案 0 :(得分:0)

您使用jn来记录用户输入了多少次。 例如,如果我输入:     1 2     3 4     5 6     7 8

您的ab将是:

a[0] = 1 ; b[0] = 2
a[1] = 3 ; b[1] = 4
a[2] = 5 ; b[2] = 6
a[3] = 7 ; b[3] = 8

您的jn将为4

由于您要向两个数组的最后一个元素添加10,因此没有 需要在j++n++中使用,只需使用a[j] = 1.0b[j] = 0.0(a[4] = 1.0, b[4] = 0.0)