发布时间:2023-12-27 14:09来源:www.sf1369.com作者:宇宇
while(s);--s;
循环结束的地方是--s前面那个分号,当然是死循环
答案C是因为加到正数的上限之后k就变成负数了。。果然够隐蔽
火车问题:
#include<iostream>
using namespace std;
int main(){
int i,j,s;
s=0;
for(i=1;i<15;i++){
for(j=i+1;j<=15;j++){
s++;
}
}
cout<<车票种数:<<s;
system(pause);
}
排列问题:
#include<iostream>
using namespace std;
int main(){
int a[20],i,j,t;
cout<<Please input 20 numbers.<<endl;
for(i=1;i<=20;i++){
cout<<input number <<i<<:;
cin>>a[i-1];
}
for(i=0;i<19;i++){
for(j=i+1;j<20;j++){
if(a[j]>a[i]){
t=a[j];
a[j]=a[i];
a[i]=t;
}
}
}
cout<<The biggest one is <<a[0]<<endl;
cout<<The numbers are listed from the biggest to the smallest as following:<<endl;
for(i=0;i<20;i++){
cout<<a[i]<< ;
}
system(pause);
}
#include stdio.h
#include conio.h
#include math.h
int isp(int);
void even(int);
int main()
{
int a;
while(1)
{
printf(Enter a even number: \n);
scanf(%d, &a);
if(a % 2 == 0)
even(a);
else
printf(The %d isn't even number\n, a);
}
getchar();
}
void even(int x)
{
int i;
for(i = 2; i <= x / 2; i++)
{
if( isp(i) && isp(x-i) )
{
printf(%d = %d + %d\n, x, i, x - i);
return;
}
}
}
int isp(int x)
{
int i;
for(i = 2; i <= (int)sqrt(x) + 1; i++)
if(x % i == 0)
return false;
//if(i == (int)sqrt(x) + 1)
//return 1;
//else
return 1;
}
if(c>sqrt(b)) C>根号b是为什么?
这个回答第一个网友解释的很好。我觉得两次判断是否是素数有点麻烦,你可以写一个判断素数的函数。
#include <stdio.h>
#include <math.h>
int isprime(int m)
{
int n,i,s;
n=sqrt(m);
for(i=2;i<=n;i++)
if(m%i==0)
break;
if(i>=n+1)
s=1;
else
s=0;
return s;
}
void main()
{
int a,b,d;
scanf(%d,&a);
for(b=3;b<=a;b+=2)
{
if(isprime(b)==1)
{
d=a-b;
if(isprime(d)==1)
{
printf(%d=%d+%d\n,a,b,d);
break;
}
}
}
}
额,发现for(b=3;b<=a/2;b+=2) 这里错了,应该是b<=a.
你可以试试。