问题1:c语言判断素数中少一个k=(int)sqrt(n) 为什么算不出结果?
回答:
C语言一般素数判断函数
你少了 k=(int)sqrt((double)n);当然不能得到结果,它是循环的结束条件。
此外:不定义变量k,直接用n来当结束条件呢?如1到100,若用 n 要循环100次,而用平方根,只要10次。
问题2:c语言中先输入一个数n代表有n行数据输入,然后输入这n行数,如何从n行数中找出最小值?
回答:
回答:
C语言一般素数判断函数
int prime(int n)
{
int i,k;
k=(int)sqrt((double)n); //提高效率
if (n<2) //2以下不能是素数
return 0;
for(i=2;i<=k;i++)
{
if(n%i==0)
return 0;
}
return 1;
}
你少了 k=(int)sqrt((double)n);当然不能得到结果,它是循环的结束条件。
此外:不定义变量k,直接用n来当结束条件呢?如1到100,若用 n 要循环100次,而用平方根,只要10次。
问题2:c语言中先输入一个数n代表有n行数据输入,然后输入这n行数,如何从n行数中找出最小值?
回答:
#include <stdio.h>
int main( void )
{
int n; //n行
int i; //循环变量i
int min; //最小值 min
int temp; //临时变量
scanf("%d",&n); //读入n
if(n>=1) //如果 行数n 大于等于1
{
scanf("%d",&min); //读入第一个数作为最小的
for(i=2;i<=n;i++) //i为 从第2个数,到第n个数
{
scanf("%d",&temp); //读这个数保存在temp变量中
if( temp<min) //如果 temp小于 前面 i-1个数的最小值
min=temp; //将当前 temp,即第i个数是目前最小的
}
printf("%d\n",min); //输入最小的数min
}
return 0;
}