您的位置:首页 > 编程语言 > C语言/C++

c语言判断素数和输入一个数n代表有n行数据的问题

2016-04-12 18:29 411 查看
问题1:c语言判断素数中少一个k=(int)sqrt(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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: