这是我的代码,它只能输出素数.
#include <stdio.h>
int prime(int n){
int j;
for (j=2;j<=n/2;j++){
if((n%j)==0){
return 0;
}
else{
return 1;
}
}
}
void main(){
int i,p;
for (i=2;i<=100;i++){
p=prime(i);
if(p==1){
printf("%d \n",i);
}
}
}
Run Code Online (Sandbox Code Playgroud)
结果是2,3,7,9,11,13,15 ....
不是2,3,5,7,11,13 ....
我做错了什么?
我正在我的课堂上完成一项任务,这需要我创造一个财富游戏之轮.我正在研究getDisplayedPhrase我将解释的方法.所以对于这个程序,我有一个随机短语,例如
"this is a question, thanks for helping!"
我希望这个短语改为.
"**** ** * ********, ****** *** *******!"
这就是短语应该在他们猜测之前的样子.你可以看到我只想改变字母,所以我创建了一个
private static final String alpha ="abcdefghijklmnopqrstuvwxyz"
Run Code Online (Sandbox Code Playgroud)
避免任何标点符号.这是我到目前为止:
public String getDisplayedPhrase() {
for (int i = 0; i<secretPhrase.length(); i++){
I don't know what to put here and what method to use???
I'm thinking of using charAt() or indexOf()
}
return displayedPhrase;
}
Run Code Online (Sandbox Code Playgroud) 我记得在Windows上使用visual studio for C/C++,它name.exe为我创建的每个控制台应用程序创建了一个文件.我想知道我是否可以在linux上制作它.我不想打开它./a.out,我想知道我是否可以像在Windows中一样,双击文件和控制台弹出.
PS:我不确定标题,你可以用一个更相关的改变它
mergealt(X,Y,Z)如果列表Z是列表X和Y中的备用元素的合并,我需要编写一个成功的Prolog谓词.
输入和输出如下:
?- mergealt([1,2,3,4],[6,7,8],Z).
Z = [1, 7, 3] .
?- mergealt([1,2,3,4],[6,7,8,9],Z).
Z = [1, 7, 3, 9] .
?- mergealt([1,2,3,4],[6,7,8,9,10],Z).
Z = [1, 7, 3, 9] .
Run Code Online (Sandbox Code Playgroud)
我真的不明白递归.我怎样才能开始解决这个问题?
根据这本书,它是如何完成的,但我无法让它发挥作用.它给我一个错误不在范围内:'ld'.我猜我应该导入一些包但不确定哪一个.本书也在提示时使用GS模块,但我使用的是带有Prelude的WinGHCi.我在这里错过了什么?
factors :: Int -> [Int]
factors n | n < 1 = error "not positive"
| n == 1 = []
| otherwise = p : factors (div n p)
where p = ld n
Run Code Online (Sandbox Code Playgroud)
我想这也可以使用map和filter函数来完成?怎么样?