输入10个正整数到a数组中,对a[10]数组中的素数升序排序。
这个问题的思路就是先用冒泡排序,在找出素数。在写的时候也考虑过先找出素数,将他们存在另一个数组中,再进行排序。这么可能麻烦一点。
#include<stdio.h>
int main()
{
int i=0;
int a[10];
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
int j=0;
int k=0;
int t=0;
int flag=0;
int b=0;
for(j=0;j<10;j++)
for(k=0;k<9-j;k++)
{
if(a[k]>a[k+1])
{
t=a[k];
a[k]=a[k+1];
a[k+1]=t;
}
}
k=0;
for(k=0;k<10;k++)
{
flag=0;
for(b=2;b<a[k];b++)
{
if(a[k]%b==0)
flag=1;
}
if(flag==0 && a[k]!=1)
printf("%4d",a[k]);
}
return 0;
}
其中数字1需要考虑,由于循环的条件是b<a[k],所以2不会进入循环,直接输出。