(define (orderedTriples n)
(set! i n)
(set! j n)
(set! k n)
(while (>= i 0)
(while (>= j 0)
(while (>= k 0)
(printf "(~a, ~a, ~a)" i j k)
(set! k (- k 1)))
(set! j (- j 1)))
(set! i (- i 1))))
Run Code Online (Sandbox Code Playgroud)
所以我的问题是...我对如何使while循环在方案中起作用感到困惑(我对此很陌生,所以如果我离开的话请原谅语法)。我在此处输入的目的只是为了解决问题并显示我要实现的目标。有人可以通过简单的递归示例或嵌套递归帮助我吗?
基本上我试图在每次遇到空格时将用户输入连接到一个char数组(源)数组.换句话说,如果sourceHold包含"祝你生日快乐",则源的数组内容将为"happy"(0),"birthday"(1),"to"(2),"you"(at) 3).sourcesTag保存char数组数组的当前索引.退出循环时我总是遇到错误(代码总是会在它完全退出循环之前中断.最后"LOOP EXIT"打印行永远不会打印.放置那里测试什么是错误的.任何想法为什么我的循环不会终止?im猜测这是因为当整个输入字符串被标记化时,while语句没有正确终止,但是什么是一个好的陈述?
while(sourceHold != NULL)
{
if(sourceHold[0] == '\n')
break;
printf("%s \n", sourceHold);
strcpy(sources[sourcesTag], strtok(sourceHold, " "));
sourcesTag++;
strcpy( sourceHold, strtok(NULL, "\n"));
}
printf("LOOP EXIT");
Run Code Online (Sandbox Code Playgroud)