2014-07-17 68 views
2

有沒有辦法使用C中的一行代碼來選擇數組中的多個元素?例如,假設我有以下代碼(假設我已經問用戶二十號,前十我問是積極的,過去十年,我問是負):如何用C選擇數組中的多個元素?

if (myArray[0 through 9] > 0) 
{ 
    printf("Thank you for providing positive numbers!"); 
} 
else 
{ 
    printf("Sorry, please try again!"); 
} 

if (myArray[10 through 19] < 0) 
{ 
    printf("Thank you for providing negative numbers!"); 
} 
else 
{ 
    printf("Sorry, please try again!"); 
} 

什麼代碼可能我替代「通過」?我對這種語言相當陌生,從來沒有聽說過這樣做。我知道用這個特定的代碼我可以創建兩個數組,一個用於正數,另一個用於負數,但我很想知道其他編程項目。

謝謝您的閱讀和回答!

+0

有沒有數組切片,你必須自己做,有一個循環,最有可能的 – Ben

回答

3

沒有什麼內置的,你需要編寫一個循環。不要忘記,數組下標0

int all_positive = 1; 
int i; 
for (i = 0; i < 10; i++) { 
    if (myArray[i] <= 0) { 
     all_positive = 0; 
     break; 
    } 
} 
if (all_positive) { 
    printf("Thank you for providing positive numbers!\n"); 
} 
+0

好的謝謝你,我不知道是否有或沒有,所以我會用循環來代替。並且謝謝你指出我寫了一個而不是零!我會解決這個問題。 – Terryn

0
int a[20]; 

// entering values for the array 

_Bool first_positive = 1; 

for (size_t i = 0; i < 10 && first_positive; i++) 
{ 
    first_positive = 0 < a[i]; 
} 

if (first_positive) puts("Hura, first 10 elements are positive"); 

_Bool last_negative = 1; 

for (size_t i = 10; i < 20 && last_negative; i++) 
{ 
    last_negative = a[i] < 0; 
} 

if (last_negative) puts("Hura, last 10 elements are negative"); 

相反的類型名稱_Bool你可以使用類型int如果你的編譯器不支持_Bool

0

程序請求的行數(1D啓動數組)。 然後要求2個整數,整數。 然後要求用戶選擇2行。 然後添加2個選定行的總和。

#include <stdio.h> 
    int main() 
    //1D_Array. Load Element and Add Sumline . 
    //KHO2016.no5. mingw (TDM-GCC-32) . c-ansi . 
    { 
    //declare 
    int a,b,c,d,e,sum1=0; 
    int array[50]; 
    int i,j,elm1,elm2; 

    //valuate 
    printf ("Plot a number of elements [1 - 20]: "); 
    scanf ("%d",&a); 
    printf ("Plot a value : "); 
    scanf ("%d",&b); 
    printf ("Plot an increment value : "); 
    scanf ("%d",&c); 

    //calculate 
    {for (i<0;i<=a;i++) 
    {array[i] =(b+(++c)); // set value for variable [i], inside the array subscript. the vairable [i] must have an INT, and an increment to function ! 
    sum1 = (sum1 + array[i]); 
    printf ("Row [%.2d] : %.2d + %.2d = %d\n",i,b,c,array[i]);} 
    printf ("\nSum total = %d\n",sum1);} 
    printf ("\nRow [%.2d] = %d\n",b,array[b]); 
    printf ("Row [%.2d] = %d\n",a,array[a]); 
    printf ("Select 2 Rows :\n"); 
    scanf ("%d%d",&elm1,&elm2); 
    d=elm1; 
    e=elm2; 

    printf ("You selected Row [%.2d] = %d\n",d,array[d]); 
    printf ("You selected Row [%.2d] = %d\n",e,array[e]); 
    printf ("The sum of two selected Rows [%d]+[%d] : %d + %d = %d\n",d,e,array[d],array[e],array[d]+array[e]); 
    //terminate 
    return 0; 
    } 
+0

你似乎在回答另一個問題。 –

相關問題