#include<stdio.h> #include<stdlib.h> #include<math.h> //在C语言中的全局变量和静态变量都是会自动初始化为0 int count; //定义全局变量并自动初始化为0 int judgeprime(int n); //函数声明 int main() { int i; printf("2~100之间的函数为:\n"); for(i=2;i<=100;i++) { if(judgeprime(i)) { printf("%d ",i); //加个空格,免得连成一坨 count++; } } printf("\n2~100之间有%d个质数\n",count); //虽然有点怪,但加了之后看起来会好一点 system("pause"); return 0; } //函数定义 int judgeprime(int n) { int i; //这里的i是局部变量 int judge=1; //判断结果默认为质数 if(n==1) judge=0; //接下来我直接用书上的写法了,懒得自己写了 { int k=(int)sqrt((double)n); //语句块内的局部变量k,还有sqrt的老问题,转型(毕竟是.cpp) //算法优化是个好东西 for(i=2;judge && i<=k;i++) if(n%i==0) judge=0; //这里也有算法优化 } return judge; }