右侧的while里面的条件为k--,先判断,再执行自减运算,循环执行,k初值为1,k--得0,k为0时,结束循环,k自减得-1,最终输出为-1。
// shuchusushu.cpp : 定义控制台应用程序的入口点。//
#include "stdafx.h"
#include <iostream>
using namespace std
int prime(int x){
for(int i= 2i<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 =2i <mi++)
{
if (prime(i)==1){
printf("%d 是素数\n",i)
arr[k++]= i
}else{
printf("%d 不是素数\n",i)
}
}
}else{
printf("输入50到2000之间的整数")
goto cfu
}
cout <<"K的值: "<<k <<endl
for (int i = 0i <k-1i++)
{
for (int j = 0j <k-1-ij++)
{
if (arr[j] <arr[j+1] )
{
int temps = arr[j]
arr[j] = arr[j+1]
arr[j+1] = temps
}
}
}
printf("10个数排序:")
for (int i = 0i<ki++)
{
printf("%d ",arr[i])
}
while(1)
return 0
}