可以帮我看看哪里有问题吗?需要用函数实现判断素数,我这里可以输入但是没办法输出,是主函数里的范围错了吗?
修改过后:
#include<stdio.h>
// 定义一个函数,判断一个数是否为素数
int prime(int m){
int i;
// 如果m小于等于1,返回0,表示不是素数
if(m<=1){
return 0;
}
// 如果m等于2,返回1,表示是素数
else if(m==2){
return 1;
}
// 否则,从2开始遍历到m-1,如果有一个数能整除m,返回0,表示不是素数
else{
for(i=2;i<m;i++){
if(m%i==0){
return 0;
}
}
// 如果遍历完都没有找到能整除m的数,返回1,表示是素数
return 1;
}
}
int main(){
int m,n;
// 输入一个正整数n
printf("请输入n:");
scanf("%d",&n);
// 从2开始遍历到n,对每个数调用prime函数判断是否为素数,并输出结果
for(m=2;m<=n;m++){
if(prime(m)==1){
printf("%d是素数\n",m);
}
else{
printf("%d不是素数\n",m);
}
}
return 0;
}
打印一个菱形其实有很多办法,不过最具有代表性的就是下面说的这两种
printf()
暴力打印这种可能是c语言初学者最常用的办法,几乎可以针对任何打印图形的问题,但是这种方式效率不高,而且做起来也很累,我们通常在无法找出规律,或者规律很复杂的时候才使用他,几乎只要会使用
printf()
就会进行操作了,这里就不再多讲了
这种我们需要找到规律,通过控制循环的条件来进行打印。