习题课1

  1. a+b>c=>3+4=7>5=>1 b==c =>0 1&&0 0
  2. a=3 a||b+c==>1 b-c==-1 ==> 1 1||-1=1
  3. a>b 3>4==0 !0=1 !c=0 1&&0=0
  4. x=a=1 !1=0 0&&任何都是0
  5. a+b=7 !7=0 0+c-1=4 b+c/2=4+2=6 4&&6=1

2.从键盘输入一个小于1000的正数,要求输出它的平方根(如平方根不是整数,则输出其整数部分)。要求在输入数据后先对其进行检查是否为小于1000的正数。若不是,则要求重新输入。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<iostream>
#include<cmath>
using namespace std;
int main(){
int n,t;
cin>>n;
while(1){
if(n>1000){
cin>>n;
}else{
t=sqrt(n);
cout<<t<<endl;
return 0;
}
}
return 0;
}

3.输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include<iostream>
#include<cstring>
using namespace std;
#define N 100010
int main(){
string a;
int len,zm,kg,num,qt;
zm=kg=num=qt=0;
getline(cin,a);
len=a.length();
cout<<len<<endl;
for(int i=0;i<len;i++){
if(a[i]>='0'&&a[i]<='9'){
num++;
}else if(a[i]==' '){
kg++;
}else if(a[i]>=65&&a[i]<=90||a[i]>=97&&a[i]<=122){
zm++;
}else{
qt++;
}
}
cout<<"字母个数"<<zm<<"数字个数"<<num<<"空格个数"<<kg<<"其他字符"<<qt<<endl;
return 0;
}

企业奖金

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include<iostream>
using namespace std;
int main(){
int i,bonus=0;
cin>>i;
if(i<=100000){
bonus+=i*.1;
}else if(i>100000&&i<=200000){
bonus+=10000+(i-100000)*.075;
}else if(i>200000&&i<=400000){
bonus+=10000+7500+(i-200000)*.05;
}else if(i>400000&&i<=600000){
bonus+=10000+7500+10000+(i-400000)*.03;
}else if(i>600000&&i<=1000000){
bonus+=10000+7500+10000+6000+(i-600000)*.015;
}else if(i>1000000){
bonus+=10000+7500+10000+6000+6000+(i-1000000)*.01;
}
cout<<bonus<<endl;
return 0;
}

#include<iostream>
using namespace std;
int main(){
int i,bonus=0;
cin>>i;
switch(i/100000){
case 0:bonus+=i*.1;break;
case 1:bonus+=10000+(i-100000)*.075;break;
case 2:bonus+=10000+7500+(i-200000)*.05;break;
case 4:bonus+=10000+7500+10000+(i-400000)*.03;break;
case 6:bonus+=10000+7500+10000+6000+(i-600000)*.015;break;
case 10:bonus+=10000+7500+10000+6000+6000+(i-1000000)*.01;break;
}
cout<<bonus<<endl;
return 0;
}

求1!+2!+……+20!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include<iostream>
using namespace std;
long factorial(int n){
long s=1;
for(int i=1;i<=n;i++){
s*=i;
}
return s;
}
int main(){
long n=0;
for(int i=1;i<=20;i++){
n+=factorial(i);
}
cout<<n<<endl;
}

7.两个乒乓球队进行比赛,各出3人。甲队为A,B,C3人,乙队为X,Y,Z 3人。已抽签决定比赛名单。有人向队员打听比赛的名单,A说他不和X比,C说他不和X,Z比,请编程序找出3对赛手的名单。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include<iostream>
using namespace std;
int main(){
char a,b,c;
for(a='x';a<='z';a++){
for(b='x';b<='z';b++){
if(a!=b){
for(c='x';c<='z';c++){
if(c!=a&&c!=b){
if(a!='x'&&c!='x'&&c!='z'){
cout<<"a==="<<a<<endl;
cout<<"b==="<<b<<endl;
cout<<"c==="<<c<<endl;
}
}
}
}
}
}
return 0;
}