例:从键盘输入任一个大于1的整数i,判断它是否是素数,如果是素数,则将其输出,否则不输出。
程序表达为:
#include<stdio.h>
int main()
{
int i,x;
scanf("%d",&i);
for(x=2;x<=i-1;x++)
if(i%x==0)
break;
if(x==i)
printf("%d",i);
return 0;
}
执行结果:输入的数值若为素数,则输出结果为该数值,若不是素数,则输出结果为空。
#include<stdio.h>
int main()
{
int i,x;
scanf("%d",&i);
for(x=2;x<=i/2;x++)
if(i%x==0)
break;
if(x>i/2)
printf("%d",i);
return 0;
} //该程序较上一个程序提高了运行效率。注意:做相应修改时for与if中的语句要相互对应。
int main()
{
int i,x;
scanf("%d",&i);
for(x=2;x<=sqrt(i);x++)
if(i%x==0)
break;
if(x>sqrt(i))
printf("%d",i);
return 0;
}
标识法:程序员较常使用的写程序的方法,即立一个flag,将flag赋为某个特定值,若循环过程中flag特定值改变,则跳出循环,下面的程序则为带标识法的程序。
#include<stdio.h>
#include<math.h>
int main()
{
int i,x,flag=1;
scanf("%d",&i);
for(x=2;x<=sqrt(i);x++)
if(i%x==0)
{
flag=0;
break;
}
if(flag==1)
printf("%d",i);
return 0;
} //以上几个程序为一题的多种写法,后两个程序相较上两个程序运行效率相对较高,建议能够学会使用标识法写程序。
例:编写一个能够输出1-200之间所有素数的程序,并要求输出数值能够对齐排列。
#include<stdio.h>
#include<math.h>
int main()
{
int count=0,n,flag,i;
for(n=2;n<=200;n++)
{
flag=1;//假设n是素数
for(i=2;i<=sqrt(n);i++)
if(n%i==0)
{
flag=0;break;
}
if(flag==1)
{
printf("%5d",n);
count++;
if(count%10==0)
printf("\n");
}
}
return 0;
} //该程序为一个基础的二重循环程序
例:编写一个能够输出如下字符图形的程序。要求仅用一个二重循环来实现,其中第1行第1个'*'在第21格输出。
#include<stdio.h>
#include<math.h>
int main()
{
int space,star,n,i,j;
space=21;
scanf("%d",&n);
star=n;
for(i=1;i<=n;i++)
{
for(j=1;j<=space;j++)
printf(" ");
for(j=1;j<=star;j++)
printf("*");
printf("\n");
if(i<=n/2)
{
space++;star-=2;
}
else
{
space--;star+=2;
}
}
return 0;
}
(本文章为课堂笔记,为跟随老师思路所写,仅供参考。)