2017-03-16 79 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到用户输入的所有数字。