输入所有元素后,如何在C中打印数组的所有元素?

输入所有元素后,如何在C中打印数组的所有元素?,c,arrays,C,Arrays,我用C写了这个代码: #include <stdio.h> int main() { int a[9], number_of_elements; printf("Enter 10 numbers: \n"); for (int i = 0; ((i < 10) && (a[i] != 0)); i++) { scanf_s("%d", &a[i]); if (a[i] == 0) {

我用C写了这个代码:

#include <stdio.h>

int main() {
    int a[9], number_of_elements;
    printf("Enter 10 numbers: \n");
    for (int i = 0; ((i < 10) && (a[i] != 0)); i++) {
        scanf_s("%d", &a[i]);
        if (a[i] == 0) {
            number_of_elements = i;
            break;
        }
        if (a[i] != 0) {
            number_of_elements = i + 1;
        }   
    }
    printf("There is %d elements.\n", number_of_elements);
    return 0;
}
#包括
int main(){
int a[9],元素的个数;
printf(“输入10个数字:\n”);
对于(inti=0;((i<10)&&(a[i]!=0));i++){
scanf_s(“%d”、&a[i]);
如果(a[i]==0){
元素的数量=i;
打破
}
如果(a[i]!=0){
元素的数量=i+1;
}   
}
printf(“有%d个元素。\n”,元素的数量);
返回0;
}

如您所见,我必须在一个数组中最多输入10个元素,或者在您输入0时停止输入,然后我必须打印该数组的所有元素以及该数组的元素数。除了打印数组的所有元素外,我对所有内容进行了排序,有人能帮我怎么做吗?

您应该使用另一个for循环,例如:

for(i=0;i<number_of_elements;i++)
{
        printf("%d ",a[i]);
}

for(i=0;i在实现@rsp的代码后,我修复了我的代码

#include <stdio.h>


int main() {

    int a[10], number_of_elements;
    printf("Enter 10 numbers: \n");
    for (int i = 0; ((i < 10) && (a[i] != 0)); i++) {

        scanf_s("%d", &a[i]);
        if (a[i] == 0) {
            number_of_elements = i;
            break;
        }
        if (a[i] != 0) {

            number_of_elements = i + 1;

        }

    }
    for (int i = 0; i<number_of_elements; i++)
    {
        printf("%d ", a[i]);
    }
    printf("\nThere are %d elements.\n", number_of_elements);
    return 0;
}
#包括
int main(){
int a[10],元素的个数;
printf(“输入10个数字:\n”);
对于(inti=0;((i<10)&&(a[i]!=0));i++){
scanf_s(“%d”、&a[i]);
如果(a[i]==0){
元素的数量=i;
打破
}
如果(a[i]!=0){
元素的数量=i+1;
}
}

对于(int i=0;i您使用另一个循环,最多有多少个元素…使用格式化打印…“输入10个数字:”,当您仅为9
int a[9]分配了空间时
。该程序的结果将是过度的悲伤。您所显示的代码有两个大问题:第一个问题是您想在只包含九个元素的数组中输入十个元素。第二个问题是条件
a[i]!=0
在初始化之前使用
a[i]
(因此将有一个不确定的值)。我把另一个循环放在哪里?@SvenB想一想!如果你想先做a,然后再做B,你不会先做B吧?