C++初学一些要记得的基本算法
看看就行
GodCandle
这个作者很懒,什么都没留下…
展开
-
C++ 用结构体和类创建单向链表
一、结构体#include <iostream>using namespace std;//一个链表要实现的操作有//建立链表,遍历链表,查找链表,插入和删除节点//查找和遍历某种程度上来说是一样的,反正都是扎进堆里然后去找你想要的那个数//创建链表还有两个前置条件,一个是链表头,还有一个是结点,这两个类//节点由于存放数据和下一个节点的首地址//而链表头用于存放第一个节点的首地址和链表的长度//链表如果直接用struct会简单得多,因为struct的默认权限是publ原创 2022-01-11 22:38:47 · 2362 阅读 · 0 评论 -
C++思路
看看就行原创 2022-01-05 19:11:23 · 866 阅读 · 0 评论 -
复制数组并忽略重复数据
for(i=1,y[0]=x[0],m=1;i!=k;i++) { for(j=0;j<i;j++) { if(x[i]==x[j]) break; } if(j==i) { y[m]=x[i]; m++; } }原创 2022-01-03 14:07:39 · 256 阅读 · 0 评论 -
#统计整数个数(指针)
以下面这题为例:题目内容:输入一个字符串,其包括数字和非数字字符,如:a123x456 17935? 098tab,将其中连续的数字作为一个整数,依次存放到数组a中,统计共有多少个整数,并输出这些数。输入格式:数字和非数字字符的字符串输出格式:1)整数个数2)分别输出整数输入样例:a123x456 17935? 098tab583【注意需要保留带有空格的字符串,请不要使用gets,cin,练习使用cin.getline(char *str, int maxnum)】输出样原创 2022-01-01 21:59:15 · 1137 阅读 · 0 评论 -
#函数递归
对于C++初学者(我)来说,函数递归的部分只需要会写数字的阶乘就可以了。了解函数递归的思想应该是最重要的。姑且写了一个猴子吃桃问题。猴子第1天摘了若干个桃子,当即吃了一半,还不解馋,又多吃了一个;第2天,吃剩下的桃子的一半,还不过瘾,又多吃了一个;以后每天都吃前一天剩下的一半多一个,到第10天想再吃时,只剩下一个桃子了。输入1~10中的任意一个数,查询该天猴子剩下多少桃子?要求用递归函数实现问题求解。正序还是倒序第几天根本无所谓,做一个简单运算全部都看成倒过来的就可以了。关键在思想。原创 2022-01-01 21:08:00 · 78 阅读 · 0 评论 -
#字符统计
以下面这道题为例:题目内容:输入字符串s,编程统计出s中共出现了多少个数字字符。进一步考虑,如何统计出10个数字字符各自出现的次数。输入格式:输入带数字字符的字符串输出格式:两行: 1)输出字符串中数字字符的总个数;2)一次逐行输出从数字字符‘0’到数字字符‘9’的个数,每个数字后面有一个空格。输入样例:abcdefk12345输出样例:Number's amount is:5'0...9' amount is:0 1 1 1 1 1 0 0 0 0#inc原创 2021-12-30 19:27:06 · 530 阅读 · 0 评论 -
插入字符串
期中考试不会写的痛历历在目题目内容:从键盘输入一个字符串,并在串中的第一次出现的最大元素后边插入字符串”ab”。输入格式:任意输入一个字符串输出格式:在串中的最大元素后边插入字符串”ab”输入样例:123csCUMT输出样例:123csabCUMT#include <iostream>using namespace std;int main(){ char temp[30]; cin.getline(temp,30); char *p=t原创 2021-12-30 10:50:43 · 341 阅读 · 0 评论 -
计算字符串中数字、字母、以及其他的数量
#include <iostream>using namespace std;int main(){ char mix[30]={0}; int numA=0,num1=0,numelse=0; cin.getline(mix,30);//因为cin会忽略掉所有前导白色空格,所以使用 cin>> 就不可能仅输入一个空格或回车符。 //详见http://c.biancheng.net/view/1350.html for(int i=0;mix[i]!='\0';i+.原创 2021-12-30 09:34:22 · 239 阅读 · 0 评论 -
冒泡排序以及选择排序
冒泡排序:#include <iostream>using namespace std;//姑且认为有10个数要排序好了void maopao (int a[])//由大到小排序{ int i,j; int temp; for(i=0;i<9;i++)//十个数 前九个数需要比较 { for(j=0;j<9-i;j++)//对于每一个比数循环,随着数字增加,要比的次数越来越少 //当j等于8时,即数列中的第九个数,只需要比一次 { if(a[j原创 2021-12-30 00:26:43 · 206 阅读 · 0 评论 -
闰年判断以及计算当前天是第几天
没啥好讲的自己看吧#include <iostream>using namespace std;int main(){ int year; int month; int day; int i=0,j=0; int total=0; cin>>year>>month>>day; if((year%4==0&&year%100!=0)||year%400==0) { cout<<year<<"原创 2021-12-29 22:45:05 · 114 阅读 · 0 评论 -
#进制转换
进制转换和数字倒序有点像,又不是那么回事,在循环中进制转换的最后一个余数是第一位而数字倒序的最后一个余数就是最后一位。也正因如此进制转换不会出现数字倒序中的问题在数字倒序中 如1200,每一次的余数都是直接加在上一个数乘10的结果中,0乘10不会有任何效果。cin>>n;int num=0;while(n){ temp=n%10; n/=10; num=num*10+temp;}//比如1564 //过程就是 4 46 465 4651原创 2021-12-29 22:08:45 · 109 阅读 · 0 评论 -
#数字倒序
先提供一种不完全正确的做法:#include <iostream>using namespace std;int reverse(int n){int a=n;int b=0;int x=0;while (a){ x=a%10; b=b*10+x; a/=10;}cout<<endl;cout<<b;}int main(){ int m; cin>>m; reverse(m); retur.原创 2021-12-29 22:19:13 · 106 阅读 · 0 评论 -
#判断质数#
#include <iostream>#include <cmath>using namespace std;//质数:不能被2到算术平方根整除 int main(){ int x=0; cin>>x; int b=sqrt(x); int i=0; for(i;i<b;i++) { if(x%i==0) break; } if(i>b+1) { cout<<x<<"是素数"<<.原创 2021-12-29 16:16:28 · 146 阅读 · 0 评论