发布网友 发布时间:1天前
共2个回答
热心网友 时间:1天前
暂时没有VC 就在这写一下,自己调试一下:
#include<stdio.h>
#include<time.h>
//产生随即整数
int GetRandNum()
{
srand(time(0));
return rand()%4000+1000;
}
//判断素数
int IsSuShu(int n)
{
int i,j=0;
for(i=2;i<=n/2;i++)
{
if(n%i==0)
j++;
}
if(j==0)
return 1;
else return 0;
}
int main()
{
int i,j,k,t,num[100],s[100];
for(i=0;i<100;i++)
num[i]=GetRandNum();
//输出产生的随机数
printf("生成的随机数如下:\n");
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
printf("%5d",num[i*10+j]);
//分每行10个显示
printf("\n")
}
printf("\n");
//找素数
j=0;
for(i=0;i<100;i++)
{
if(IsSuShu(num[i]))
s[j++]=num[i];
}
//此时j的值就是素数的个数
//输出找出的素数
printf("其中的素数如下:\n");
for(i=0;i<j;i++)
{
printf("%5d",s[i]);
if((i+1)%10==0)
printf("\n");//同样每行显示10个数
}
printf("\n");
//冒泡排序(从小到大)
for(i=j-1;i>0;i--)
{
for(k=0;k<i;k++)
{
if(s[k]>s[k+1])
{
t=s[k];
s[k]=s[k+1];
s[k+1]=t;
}
}
}
//输出排序后的素数
printf("排序后:\n");
for(i=0;i<j;i++)
{
printf("%5d",s[i]);
if((i+1)%10==0)
printf("\n");//同样每行显示10个数
}
return 0;
}
热心网友 时间:1天前
#include <time.h>#include <stdio.h>#include <stdlib.h>//模拟 bool 类型#define BOOL int#define TRUE 1#define FALSE 0//交换两个数字的位置void swap(int *a, int *b){ *a ^= *b; *b ^= *a; *a ^= *b;}//数组排序void sort(int *array, int length){ for(int i=0; i<length; ++i) { for(int j=0; j<length-1-i; ++j) { if(array[j] > array[j+1]) { swap(&array[j], &array[j+1]); } } }}//判断一个数字是否为素数BOOL isPrimeNumber(int number){ for(int i=2; i<number; ++i) { if( ! (number % i) ) { return FALSE; } } return TRUE;}//获取数组中的素数,并返回有效数据长度int getPrimeNumber(int *source, int *target, int length){ int index = 0; for(int i=0; i<length; ++i) { if(isPrimeNumber(source[i])) { target[index++] = source[i]; } } return index;}//输出数组中的所有元素void print(int *data, int length){ for(int i=0; i<length; ++i) { printf("%d\n",data[i]); }}//传入一个数组和数组长度 用于保存产生的随机数void getRandomNumber(int *data, int length){ //以时间作为随机种子 srand( (unsigned)time( NULL ) ); //生成保存满足条件的length个随机数 for(int i=0; i<length; ++i) { data[i] = rand() % 4000 + 1000;// data[i] = rand() % 8 + 2; }}int main(int argc, char *argv[]){ int length = 10; int source[length]; int target[length]; //获取10个随机数 getRandomNumber(source, length); //count 有效数据的长度 int count = getPrimeNumber(source, target, length); //排序 sort(target, count); //输出 print(target, count);
}
如果有错求指正