华中科技大学上机(部分题)
2020-04-05 07:25
106 查看
1394 统计每个单词字符
编一个程序,读入用户输入的,以“.”结尾的一行文字,统计一共有多少个单词,并分别输出每个单词含有多少个字符。 (凡是以一个或多个空格隔开的部分就为一个单词)
#include <iostream> #include<algorithm> #include<string> #include<iomanip> #include<cmath> using namespace std; int main() { char a[1000]; while (gets_s(a)) { int cnt, len; len = strlen(a); cnt = 0; for (int i = 0; i < len; i++) { if (a[i] != ' '&&a[i] != '.') cnt++; else { if (cnt != 0) cout << cnt <<' '; cnt = 0; } } cout << endl; } return 0; }
1393 矩阵转置
输入一个N*N的矩阵,将其转置后输出。要求:不得使用任何数组(就地逆置)。
#include <iostream> #include<algorithm> #include<string> #include<iomanip> #include<cmath> #define N 100 using namespace std; int main() { int a[N][N], n; cin >> n; for (int i = 0; i < n; i++) for (int j = 0; j < n; j++) cin >> a[i][j]; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) cout << a[j][i] << ' '; cout << endl; } return 0; }
1392 杨辉三角
#include <iostream> #include<algorithm> #include<string> #include<iomanip> #include<cmath> #define N 100 using namespace std; int main() { int a[N][N], n; cin >> n; for (int i = 0; i < n; i++) { a[i][i] = 1; a[i][0] = 1; } for (int i = 2; i < n; i++) for (int j = 1; j < i; j++) a[i][j] = a[i - 1][j - 1] + a[i - 1][j]; for (int i = 1; i < n; i++) { for (int j = 0; j <= i; j++) cout << a[i][j] << ' '; cout << endl; } return 0; }
1396 二叉排序数
二叉排序树,也称为二叉查找树。可以是一颗空树,也可以是一颗具有如下特性的非空二叉树: 1. 若左子树非空,则左子树上所有节点关键字值均不大于根节点的关键字值; 2. 若右子树非空,则右子树上所有节点关键字值均不小于根节点的关键字值; 3. 左、右子树本身也是一颗二叉排序树。 现在给你N个关键字值各不相同的节点,要求你按顺序插入一个初始为空树的二叉排序树中,每次插入后成功后,求相应的父亲节点的关键字值,如果没有父亲节点,则输出-1。
#include<bits/stdc++.h> using namespace std; typedef struct BTNode { int data; struct BTNode* lchild; struct BTNode* rchild; }BTNode; BTNode* insert(BTNode *&T, int d, int &f)//在插入的时候顺便记录父节点的数据 { if(T == NULL){ T = (BTNode *)malloc(sizeof(BTNode)); T->data = d; T->lchild = NULL; T->rchild = NULL; } else if(T->data > d){ f = T->data; T->lchild = insert(T->lchild,d,f); } else{ f = T->data; T->rchild = insert(T->rchild,d,f); } return T; } int main() { int n, f, d; while (cin>>n) { BTNode *T = NULL; for (int i = 0; i<n; i++) { f = -1; cin>>d; T = insert(T, d, f); cout<<f<<endl; } } return 0; }
1397 字符串连接
不借用任何字符串库函数实现无冗余地接受两个字符串,然后把它们无冗余的连接起来。
#include <iostream> #include<algorithm> #include<string> #include<iomanip> #include<cmath> #define N 100 using namespace std; void link(char *a, char *b) { while (*a != 0) a++; while (*b != 0) { *a = *b; a++; b++; } *a = '\0'; } int main() { char a[100], b[100]; while (cin >> a >> b) { link(a, b); cout << a << endl; } return 0; }
1399 排序
对输入的n个数进行排序并输出。
#include <iostream> #include<algorithm> using namespace std; int main() { int n, a[100]; while (cin >> n) { for (int i = 0; i < n; i++) cin >> a[i]; sort(a, a + n); for (int i = 0; i < n; i++) cout << a[i] << ' '; cout << endl; } return 0; }
1400 特殊排序
输入一系列整数,将其中最大的数挑出(如果有多个,则挑出一个即可),并将剩下的数进行排序,如果无剩余的数,则输出-1。
#include <iostream> #include<algorithm> using namespace std; int main() { int a[100], n, max = -1; while (cin >> n) { for (int i = 0; i < n; i++) cin >> a[i]; sort(a, a + n); max = a[n - 1]; if (n == 1) { cout << max << endl; cout << "-1" << endl; } else { cout << max << endl; for (int j = 0; j < n; j++) if (a[j] != max) cout << a[j] << ' '; cout<<endl; } } return 0; }
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- C# 教程(基础理论部分出自网络,一些上机结果为原创)
- 华中科技大学计算机历年考研复试上机题
- 二叉排序树——华中科技大学复试上机
- 华中科技大学2010年复试上机题a+b
- ACCP JAVA1基础 上机8第3部分3 购物结算
- 2012下半年版无忧全国计算机等级考试超级模拟软件DVD合集三级PC技术部分上机练习第33套题汇编运行结果
- A+B——华中科技大学复试上机
- 二叉排序树——华中科技大学计算机历年考研复试上机题
- 算法竞赛入门经典第一章上机练习(部分)及总结
- ACCP JAVA1基础 上机8第3部分4 修改客户信息
- 华科软院部分复试上机题
- ACCP JAVA1基础 上机8第3部分2 生日问候
- 二叉查找树(华中科技大学计算机考研复试上机题)
- 06华中科技大学复试上机
- 二叉树遍历——华中科技大学复试上机
- C语言的选择和循环上机题目(部分)
- 07华中科技大学复试上机(软件)
- 华中科技大学_2006保研___考研计算机_复试上机
- 07华中科技大学复试上机(应用)
- Linux常用命令(八)上机操作命令部分解答