2017-03-16 80 views
0

我想創建一個程序,當它在循環中獲得一定的值時,它會向另一個主循環廣播某種信號,並且它會開始執行它需要做的任何事情。我在網上搜索了多個互相交互的循環,但是我什麼也沒找到。 例如:我要求用戶輸入一個數字。當我收到號碼時,它會檢查它得到的號碼併發送信號給適當的迴路並在那裏進行計算。完成後,它將信號發送回主循環,並重復整個過程,直到用戶輸入特定數字來終止程序。 PS你能以一種簡單的方式,如果可能的解釋,我是新的(ISH)至C.與其他循環的循環交互

編輯:代碼

#include <stdio.h> 

main(){ 
    int ier, cand, product, check, i = 1; 

    printf("Input only whole numbers!"); 
    printf("\nMultiplier: "); 
    scanf("%d", &ier); 
    printf("\nMultiplicand: "); 
    scanf("%d", &cand); 

    while(i != 0){ 
    if((ier == 0 && cand > 0) || (ier > 0 && cand == 0)){ 
     printf("Product: 0") 
     printf("Input only whole numbers!"); 
     printf("\nMultiplier: "); 
     scanf("%d", &ier); 
     printf("\nMultiplicand: "); 
     scanf("%d", &cand); 
    } 
    if((ier > 0 && cand > 0) || (ier < 0 && cand > 0) || (ier > 0 && cand < 0)) 
    } 

    while(i != 0){ 
    if((ier < 0 && cand > 0) || (ier > 0 && cand < 0)){ 
     printf("Values must not be negative"); 
     printf("Input only whole numbers!"); 
     printf("\nMultiplier: "); 
     scanf("%d", &ier); 
     printf("\nMultiplicand: "); 
     scanf("%d", &cand); 
    } 
    if(ier > 0 && cand > 0){ 
     break; 
    } 
    } 
+0

你試過了什麼?告訴我們你的代碼。 –

+0

這些並不是你描述它的獨立循環。聽起來就像你只想有一個循環調用一個函數來進行計算,除非這個計算需要很長時間,以至於你希望能夠在用戶完成之前從用戶那裏獲得更多的信息。如果是這種情況,則需要選擇支持多個線程的語言,或者使用操作系統創建任務並使用管道或消息。你的問題沒有任何具體的內容來進一步縮小範圍。 – lurker

+0

我用if語句編寫了一個代碼,使其工作,但它太複雜了。我仍然會添加它。 –

回答

0

通過啓動C的,我以爲你是保持它單線程(只有一個進程執行你的程序)。去多線程是一個不同的故事,它非常複雜。

在這種情況下,您必須將c程序看作不是一組相互交互的循環,而是一個接一個地按順序執行的一批指令。

「循環」就是當您完成設置指令時,您會跳回到某些指令並重復相同的指令。與「如果」讓我們跳過一些說明時一樣。

所以你的情況,你可以嵌套循環做你想做的,像什麼:

Start program 
finished = false 
Start loop while not finished 
    Ask user for a number x 
    If x < 0 Then finished = true 
    i = 0 
    Start loop while i < x 
     Print i 
     i = i + 1 
    End loop 
End loop 
End program 

這就是所謂的「僞」,它只是一個代碼,這樣就可以更好地理解事情怎麼走,而不必瞭解特定的代碼語法。 該程序將要求用戶輸入一個循環中的數字,直到用戶輸入負數,然後打印出0到用戶輸入的所有數字。