C++程序设计实验3

简介: C++程序设计实验3

【问题描述】

将一个数组中的值按逆序重新存放

【输入形式】

手动输入多个整数

【输出形式】

按输入的逆序输出

【样例输入】

8 6 5 4 1

【样例输出】

1 4 5 6 8

1. #include <iostream>
2. using namespace std;
3. int main()
4. {
5.  int a[5];
6.  for(int i=0;i<5;i++)
7.  {
8.    cin>>a[i];
9.  }
10.   for(int i=4;i>=0;i--)
11.   {
12.     cout<<a[i];
13.     if(i)
14.     {
15.       cout<<" ";
16.     }
17.   }
18.   return 0;
19. }

【问题描述】

从标准输入中输入两组整数(每行不超过20个整数,每组整数中元素不重复),合并两组整数,去掉在两组整数中都出现的整数,并按从大到小顺序排序输出(即两组整数集"异或")。

【输入形式】

首先输入第一组整数,以一个空格分隔各个整数;然后在新的一行上输入第二组整数,以一个空格分隔,行末有回车换行。

【输出形式】

按从大到小顺序排序输出合并后的整数集(去掉在两组整数中都出现的整数,以一个空格分隔各个整数)。

【样例输入】

5 1 4 32 8 7 9 -6

5 2 87 10 1

【样例输出】

87 32 10 9 8 7 4 2 -6

【样例说明】

第一组整数为5   1   4   32   8   7   9   -6,第二组整数分别为5   2   87   10   1。将第一组和第二组整数合并(去掉在两组整数中都出现的整数5和1),并从大到小顺序排序后结果为87   32   10   9   8   7   4   2   -6。

1. #include<bits/stdc++.h>
2. using namespace std;
3. bool cmp(int x,int y)
4. {
5.  return x>y;
6. }
7. int main()
8. {
9.  int a[20],b[20],c[20];
10.   int i=0,j=0,num=0,k1=0,k2=0;
11.   char ch=0;
12.   while(ch!='\n')
13.   {
14.     cin>>a[k1];
15.     k1++;
16.     ch=getchar();
17.   }
18.   ch=0;
19.   while(ch!='\n')
20.   {
21.     cin>>b[k2];
22.     k2++;
23.     ch=getchar();
24.   }
25.   for(i=0;i<k1;i++)
26.   {
27.     for(j=0;j<k2;j++)
28.     {
29.       if(a[i]==b[j])
30.       {
31.         break;
32.       }
33.     }
34.     if(j>=k2)
35.     {
36.       c[num]=a[i];
37.       num++;
38.     }
39.   }
40.   for(i=0;i<k2;i++)
41.   {
42.     for(j=0;j<k1;j++)
43.     {
44.       if(b[i]==a[j])
45.       {
46.         break;
47.       }
48.     }
49.     if(j>=k1)
50.     {
51.       c[num]=b[i];
52.       num++;
53.     }
54.   }
55.   sort(c,c+num,cmp);
56.   cout<<c[0];
57. for(i=1;i<num;i++)
58.     {
59. for(j=0;j<i;j++)
60.         {
61. if(c[i]==c[j])
62.             {
63. break;
64.             }
65.         }
66. if(j>=i)
67.         {
68.           cout<<" "<<c[i];
69.         }
70.     }
71.   return 0;
72. }

【问题描述】

编写函数itob(n,s,b),用于把整数n转换成以b为基的字符串并存储到s中.   编写程序,使用函数itob(n,s,b)将输入的整数n,转换成字符串s,将s输出.转换后的字符串从最高的非零位开始输出。如果n为负数,则输出的字符串的第一个字符为'-'。b为大于1小于37的任意自然数值。当b=2时,输出字符只可能是'0'和'1';当b=16时,输出字符串中可能含有字符为'0'-'9','a'-'f'(字母以小写输出)。b还可以是其它数值。比如输入n=33,b=17,则输出33的17进制值为"1g"。

【输入形式】

控制台输入整数n和b,其中n可以为负数。n和b以空格分隔.

【输出形式】

控制台输出转化后的字符串s.

【样例输入】

5 2

【样例输出】

101

【样例说明】

5的二进制就是101

1. #include<bits/stdc++.h>
2. int itob(int n,int s[50],int b)
3. {
4.  int temp=0;
5.  while(n)
6.  {
7.    s[temp++]=n%b;
8.    n=n/b;
9.  }
10.   return temp;
11. }
12. using namespace std;
13. int main()
14. {
15.   int n,b,s[50];
16.   cin>>n>>b;
17.   int len=itob(n,s,b);
18.   if(n<0)
19.   {
20.     cout<<"-";
21.     for(int i=len-1;i>=0;i--)
22.     {
23.       s[i]=-s[i];
24.     }
25.   }
26.   for(int i=len-1;i>=0;i--)
27.   {
28.     if(s[i]>=0&&s[i]<=9)
29.     {
30.       cout<<s[i];
31.     }
32.     else
33.     {
34.       cout<<(char)(s[i]-10+'a');
35.     }
36.   }
37.   return 0;
38. }

【问题描述】

找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小(也可能没有鞍点)

【输入形式】

数组

【输出形式】

输出鞍点坐标及数值,或者输出无鞍点

【样例输入】

1 2 4

2 4 8

3 6 12

【样例输出】

Saddle point:a[0][2]=4

【样例输入】

1 2 4

2 9 3

3 6 12

【样例输出】

There is no saddle point

【样例说明】

【评分标准】

输入上述两个二维数组,判断输出是否一致,以及核心代码是否使用二维数组。

1. #include<bits/stdc++.h>
2. using namespace std;
3. int main()
4. {
5.  int flag=0;
6.  int i,j,k;
7.  int a[3][3];
8.  int line=0,row=0;
9.  int max,min;
10.   for(i=0;i<3;i++)
11.   {
12.     for(j=0;j<3;j++)
13.     {
14.       cin>>a[i][j]; 
15.     }
16.   }
17.   for(i=0;i<3;i++)
18.   {
19.     line=0;max=a[i][line];
20.     for(j=0;j<3;j++)
21.     {
22.       if(a[i][j]>max)
23.       {
24.         max=a[i][j];
25.         line=j;
26.       }
27.     }
28.     row=i;min=a[row][line];
29.     for(k=0;k<3;k++)
30.     {
31.       if(a[k][line]<min)
32.       {
33.         min=a[k][line];
34.         row=k;
35.       }
36.     }
37.     if(row==i)
38.     {
39.       cout<<"Saddle point:"<<"a["<<row<<"]["<<line<<"]"<<"="<<a[row][line]<<endl;
40.       flag=1;
41.     }
42.   }
43.   if(flag==0)
44.   {
45.     cout<<"There is no saddle point"<<endl;
46.   }
47.   return 0;
48. }

【问题描述】

用筛选法求100之内的素数。

所谓“筛选法”指的是“埃拉托色尼(Eratosthenes)筛选法”。他是古希腊著名数学家,他采用的方法是:在一张纸上写1-100全部素数,然后逐个判断它们是否为素数,找出一个非素数,就把它挖掉,最后剩下的就是素数。

【输出形式】

2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97

1. #include<bits/stdc++.h>
2. using namespace std;
3. int check(int x)
4. {
5.  if(x==1)
6.  {
7.    return 0;
8.  }
9.  for(int i=2;i*i<=x;i++)
10.   {
11.     if(x%i==0)
12.     {
13.       return 0;
14.     }
15.   }
16.   return 1;
17. }
18. int main()
19. {
20.   for(int i=1;i<=100;i++)
21.   {
22.     if(check(i))
23.     {
24.       cout<<i<<" ";
25.     }
26.   }
27.   return 0;
28. }
相关文章
|
7月前
|
算法 开发工具 计算机视觉
【零代码研发】OpenCV实验大师工作流引擎C++ SDK演示
【零代码研发】OpenCV实验大师工作流引擎C++ SDK演示
100 1
|
7月前
|
C++
C++ : 程序设计简单实例
C++ : 程序设计简单实例
50 3
|
7月前
|
安全 C++
C++:程序设计实例
C++:程序设计实例
58 2
|
7月前
|
C++
C++程序设计实践一上(题目来自杭州电子科技大学ACM)
C++程序设计实践一上(题目来自杭州电子科技大学ACM)
44 2
|
7月前
|
存储 搜索推荐 C++
C++课程设计实验杭州电子科技大学ACM题目(中)
C++课程设计实验杭州电子科技大学ACM题目(中)
38 1
|
7月前
|
C++
C++程序设计实践一下(题目来自杭州电子科技大学ACM)
C++程序设计实践一下(题目来自杭州电子科技大学ACM)
49 1
|
8月前
|
C++
【期末不挂科-C++考前速过系列P6】大二C++实验作业-模板(4道代码题)【解析,注释】
【期末不挂科-C++考前速过系列P6】大二C++实验作业-模板(4道代码题)【解析,注释】
【期末不挂科-C++考前速过系列P6】大二C++实验作业-模板(4道代码题)【解析,注释】
|
7月前
|
存储 JavaScript 前端开发
程序与技术分享:C++程序设计实验考试准备资料(2019级秋学期)
程序与技术分享:C++程序设计实验考试准备资料(2019级秋学期)
|
7月前
|
C++
技术经验分享:C++程序设计的技巧
技术经验分享:C++程序设计的技巧
46 0
|
7月前
|
存储 算法 安全
面向对象程序设计C++
面向对象程序设计C++