现在的位置: 首页 > 综合 > 正文

基于visual Studio2013解决C语言竞赛题之0611素数排序

2014年02月02日 ⁄ 综合 ⁄ 共 700字 ⁄ 字号 评论关闭




题目

解决代码及点评


#include <stdio.h>
#include <stdlib.h>
#include <math.h>
/*
	判断整数n是否为质数
	是:返回1
	否:返回0
*/
int isPrimeNum1(int n)
{
	int isPrime = 1;
	if (n == 1)
	{
		return 0;
	}
	for (int i = 2; i <= (int)(sqrt((double)n)); i++) 
	{
		if (n % i == 0)
		{
			isPrime  = 0;
			break;
		}
	}
	return isPrime;
}
// 排序采用冒泡进行
void sort1(int *a,int n)
{
	for (int i = 0; i < n - 1; i++)
	{
		for (int j = i + 1; j < n; j++)
		{
			if (a[i] > a[j])
			{
				a[i] = a[i] ^ a[j];
				a[j] = a[i] ^ a[j];
				a[i] = a[i] ^ a[j];
			}
		}
	}
}


void main()
{
	const int N = 20; 
	int a[N];
	int index = 0;
	int data;
	for (int i = 0; i< N;i++)
	{   
		scanf_s("%d",&data);   // 输入数字
		if (isPrimeNum1(data))  // 判断是否素数,如果是则保存在a数组中
		{
			a[index++] = data;
		}
	}
	
	sort1(a,index);   // 对a数组进行排序
	for (int i = 0; i < index; i++)  // 打印数组
	{
		printf("%-3d",a[i]);
	}
	printf("\n");
	system("pause");
}

代码编译以及运行

由于资源上传太多,资源频道经常被锁定无法上传资源,同学们可以打开VS2013自己创建工程,步骤如下:

1)新建工程

2)选择工程

抱歉!评论已关闭.