标签:int max 质数 else 小白 printf 完整版 输入
目的很简单,学到哪就稍微用一下刚学的知识,下面是我的代码(其中有些步骤可以简化,就比如在search函数中用指针没什么意义,因为我只需要return“ture or false”如果用指针其实是杀鸡用牛刀,不过只是练习一下学的,所以目的不同代码自然不同,欢迎指教
#include
#include
void search(int a,int *b,int i)
{
*b = 0;
i = 2;
if (a < 2)
{
*b = 1;
}
else
{
for (i = 2; a % i != 0; i+=1);
if (a == i)
{
*b = 2;
}
else
{
*b = 1;
}
}
}
int main()
{
int i = 0, b = 0, a = 0, max = 0,yn=0;
int n=0 ;
int *p;
while (1) {
printf("请输入第一个数:");
scanf_s("%d", &a);
search(a, &b, i);
if (b == 2) {
printf("请输入想要多少个质数:");
scanf_s("%d", &max);
p = (int*)malloc(max * sizeof(int));
while (i < max) {
search(a, &b, i);
if (b == 2) {
printf("%d ", a);
p[n] = a;
n++;
a++;
i++;
}
else {
a++;
}
}break;
}
else {
printf("%d不是质数,", a);
}
} printf("\n请问是否需要查询特定位置质数,需要请输入1,不需要请输入0\n请输入:");
scanf_s("%d", &yn);
if (yn = 1) {
do
{
printf("请问想查询第几个质数:");
scanf_s("%d", &n);
if (n > max) {
printf("输入的数字无效请重新输入,");
}
else {
printf("第%d个质数是%d", n, p[n - 1]);
}
} while (n > max);
}
else {
printf("程序结束,谢谢使用");
}
free(p);
return 0;
}
最后一行free(p),我写只是为了养好习惯,毕竟有借有还再接不难,整体程序确实还有很多优化的地方,希望大佬指教。
**闲谈:**最近很是懈怠,这跟我之间的经历如出一辙,目标竖得很高但实际却不行动,不过之后我会继续改变自己,达到理想状态。
打油诗
新途伊始志气昂,
昨日云烟今朝放。
不问桃花何处开,
心海静深浪自涌。
标签:int,
max,
质数,
else,
小白,
printf,
完整版,
输入
From: https://www.cnblogs.com/xx02/p/18399336