#include "stdafx.h"
#include <stdio.h>
#include <iostream>
using namespace std;
int prime(int x){
for(int i=2;i<x;i++){
if(x%i==0)
return 0;
}
return 1;
}
int main(){
int a=0; // 素数的个数
int num[9]; // 输入的整数
int numl[9]={0};
printf("输入10个整数:\n");
cfu:
//有个小BUG需要输入11个数,最后一个不算入计算之内。
for(int i = 0;i < 10;i++){
scanf("%d\n",&num[i]);
}
for (int i = 0;i < 10;i++)
{
if (num[i] >= 50 && num[i] <= 2000)
{
//判断是不是素数;
if(prime(num[i])==1){
printf("%d 不是素数\n",num[i]);
}
else{
printf("%d 是素数\n",num[i]);
numl[a++] = num[i];
}
}else{
printf("请输入50到2000之间的数\n");
goto cfu;
}
}
//排序写在这里就可以了。
int lenth = a;
cout << "长度为: "<< lenth << endl;
for (int i = 0;i < lenth-1;i++)
{
for (int j = 0;j < lenth-1-i;j++)
{
if (numl[j] < numl[j+1] )
{
int temps = numl[j];
numl[j] = numl[j+1];
numl[j+1] = temps;
}
}
}
for (int i=0;i<lenth;i++)
{
printf("%d ",numl[i]);
}
while(1);
return 0;
}
//好像看错题了,我的是输入10个数判断是否是素数,,,,,
//这个重新写了一个,就符合题的意思了,你想输出其他的素数就自己加条件,当成拓展就可以了.
#include "stdafx.h"
#include <iostream>
using namespace std;
int prime(int x){
for(int i= 2;i< x ; i++){
if(x%i == 0)
return 0;
}
return 1;
}
int _tmain(int argc, _TCHAR* argv[])
{
int m,k=0;
int arr[2000]={0};
printf("输入50到2000之间的整数: ");
cfu:
scanf("%d",&m);
if (m >= 50 && m <= 2000)
{
//判断在m以内有素数
for (int i =2;i < m; i++)
{
if (prime(i)==1){
printf("%d 是素数\n",i);
arr[k++]= i;
if (k == 10)
{
break;
}
}else{
printf("%d 不是素数\n",i);
}
}
}else{
printf("输入50到2000之间的整数");
goto cfu;
}
cout << "K的值: "<< k << endl;
for (int i = 0;i < k-1;i++)
{
for (int j = 0;j < k-1-i;j++)
{
if (arr[j] < arr[j+1] )
{
int temps = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temps;
}
}
}
printf("10个数排序:");
for (int i = 0;i< k; i++)
{
printf("%d ",arr[i]);
}
while(1);
return 0;
}
温馨提示:答案为网友推荐,仅供参考