2017-04-12 63 views
-2

所以我有这样的代码在C:如何在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; 
} 

正如你所看到的,我必须输入最多10个元素到一个数组,或停止,当你输入0进入,之后,我必须打印所有元素该数组和数组元素有多少。除了打印数组的所有元素外,我对所有东西进行了排序,任何人都可以帮助我如何做到这一点?

+0

你用另一个循环,取决于你有多少元素有...有一个格式化打印... – StoryTeller

+2

“进入10数字:“,当你只有9'int a [9]'的空间时。该方案的结果只会是过度的悲伤。 – George

+2

您显示的代码有两个大问题:第一个问题是您要将十个元素输入到仅包含九个元素的数组中。第二个问题是'a [i]!= 0'在你初始化之前使用'a [i]'的条件(因此将避免一个*不确定*值)。 –

回答

2

您应该使用其他for循环,如:

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

实施@ 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; 
} 

TNX大家的帮助和TNX @George被如此有趣:)

相关问题