C++
memoryqiu
这个作者很懒,什么都没留下…
展开
-
反转字符串
void reverse1(char *str) { char *p = str; char *q = str + strlen(str) - 1; while (p < q) { char ch = *p; *p = *q; *q = ch; p++; q–;原创 2015-11-18 20:14:00 · 362 阅读 · 0 评论 -
整型转字符数组型
int intlen(int n){ int i = 0; while(n != 0) { n /= 10; i++; } return i;}void int2char(int n, char *p){ p = p + intlen(n); *p = '\0'; while(n != 0)原创 2016-01-26 15:20:27 · 419 阅读 · 0 评论 -
连接两个字符串
char *strca1(char *str1, char *str2){ int i = 0; int j = 0; while(str1[i] != '\0') { i++; } while(str2[j] != '\0') { str1[i] = str2[j]; i++;原创 2016-01-26 15:21:44 · 384 阅读 · 0 评论 -
有序数列中插入一个数,使之仍有序
#define N 7void insert_sort(int key, int num[]){ int i = 0; while(key > num[i] && i < N - 1) { i++; } for(int j = N - 2; j >= i; j--) { num[j + 1] = num[j];原创 2016-01-26 15:25:53 · 6078 阅读 · 0 评论 -
压缩字符串
输出: b3d4e1string fun(string str){ string res = ""; int i = 0; while(i < str.length()) { int cnt = 0; char ch = str[i]; while(str[i] == ch) {原创 2015-12-12 15:15:05 · 295 阅读 · 0 评论 -
整型转字符串型或char* 型
string num2str(int num){ if (num == 0) { return "0"; } bool flag = true; if (num < 0) { num = -num; flag = false; } string res = ""; while(n原创 2015-12-12 21:18:57 · 427 阅读 · 0 评论 -
结构体数组的输入输出函数
struct Worker{ char name[20]; float pay;};void input(struct Worker *p, int n){ for(int i = 0; i < n; i++) { cin>>p[i].name>>p[i].pay; }}void output(struct Worker *p, int原创 2016-01-26 15:41:16 · 9354 阅读 · 0 评论 -
判断整数是否是素数
n若为素数,输出1;否则,输出0。bool f(int n){ int m = 2; while(n % m != 0) { m++; } if(m == n) { return true; } return false;}main(){ int n; while(cin>>n)原创 2015-12-29 14:55:01 · 497 阅读 · 3 评论 -
对象与指针的转换
struct Person{ string name; int age;};void print(Person &p){ cout<<"ni"<<endl; cout<<p.name<<' '<<p.age<<endl;}void print(Person *p){ cout<<"wo"<<endl; cout<<(*p).name<<endl;原创 2015-11-24 12:38:34 · 2327 阅读 · 0 评论 -
结构体
struct person{ char* name; int age; int number;};void print_person(person *p){ cout<<p->name<<endl; cout<<p->age<<endl; cout<<p->number<<endl;}int main(){ person *p = n原创 2015-11-19 11:03:19 · 286 阅读 · 0 评论 -
Fibonacci数列、判断回文字符串
Fibonacci数列又称斐波那契数列,又称黄金分割数列,指的是这样一个数列:1、1、2、3、5、8、13、21。 现给出函数原型为 int fibonacci(int n); 要求实现该函数,返回值为Fibonacci数列的第n个数。int f(int n){ if(n <= 2) { return 1; } else {原创 2015-11-19 19:39:41 · 564 阅读 · 0 评论 -
求两整数的最大公约数(递归法)和最小公倍数
int f(int a, int b){ if(a % b == 0) { return b; } return f(b, a % b);}int main(){ int a; int b; cin>>a>>b; cout<<f(a, b);}原创 2016-01-26 15:31:46 · 1100 阅读 · 0 评论 -
输入一个数组,让所有奇数都在偶数前面
int oddeven(int num[], int len){ int i = 0; int j = len - 1; while(i < j) { while(i < j && num[i] % 2 == 1) //需要再次说明 i < j, 否则eg : num[] = {1, 1, 1, 2, 2, 2, 2}会出错 {原创 2016-01-25 22:22:04 · 1015 阅读 · 0 评论 -
链表存储数据并排序
用链表存储 n 个随机数,并之后将奇数位数排在前面,偶数位数排在后面。struct ListNode{ int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {}};ListNode* inputNum(int n){ ListNode *head = new ListNode(rand()原创 2016-01-28 22:25:51 · 672 阅读 · 0 评论 -
整数的二进制表示中1的个数
int getNumOf1(int n) //方法1{ int res = 0; bool flag = true; if(n < 0) { flag = false; n = -n - 1; } while(n) { res += n % 2; n /= 2; }原创 2015-12-14 16:26:46 · 249 阅读 · 0 评论 -
自守数
自守数是指一个数的平方的尾数等于该数自身的自然数。例如:252=625,762=5776,93762=87909376。从键盘输入一个正整数N,求出不大于N的所有自守数。输入: 50 输出: 1 5 6 25int getBit(int n){ int res = 10; while (res < n) { res *= 10; } ret原创 2015-12-31 15:57:18 · 687 阅读 · 0 评论 -
二维数组的使用
输入: 5 1 3 5 4 6 8 9 2 4 6 1 3 2 4 7 7 8 5 3 4 1 5 4 3 6输出: 1int minValue(int **p, int n){ int res = p[0][0]; for(int i = 0; i < n; i++) { for(int j = 0; j < n; j++) {原创 2015-12-07 21:43:20 · 305 阅读 · 0 评论 -
排序
现有结构体:struct Person { string name; int age; };要求按照指定要求对Person进行排序。 输入:第一行为两个整数,第一个整数n表示总共有n个person,第二个整数为0或1,若为0,则表示按人名进行排序,若为1,则表示按年龄进行排序。接下来n行输入数据分别表示n个人的姓名和年龄。 6 0 xue 25 qiu 24 zhang 26 li 23原创 2015-11-19 22:16:42 · 265 阅读 · 0 评论 -
函数指针的使用
示例1void print1(int num){ cout<<num + 1<<endl;}void print2(int num){ cout<<num + 2<<endl;}int main(){ // auto fun = print1; void (*fun)(int) = &print1; fun(1); fun = print2;原创 2015-11-24 17:08:09 · 265 阅读 · 0 评论 -
单词首字母大写,删除多余空格
string str; while (getline(cin, str)) { int i = 0; while (str[i] == ' ') { i++; } int j = str.length() - 1; while (str[j] == ' ')原创 2015-11-18 20:20:49 · 1050 阅读 · 0 评论 -
反转字符串2
输入:you are xue输出: ··· xue are you ···void reverse1(char *ch, int left, int right){ int i = left; int j = right; while(i <j) { swap(ch[i], ch[j]); i++; j--;原创 2015-11-24 20:49:24 · 344 阅读 · 0 评论 -
十六进制转化十进制
int fun(string str){ int i = 0; int res = 0; while(i < str.length()) { if(str[i] >= '0' && str[i] <= '9') { res = res * 16 + str[i++] -'0'; }原创 2015-12-12 20:49:03 · 398 阅读 · 0 评论 -
class
Test.h#ifndef TEST_H#define TEST_H#include <string>using namespace std;class Test{public: Test(); Test(string name, int age); void setAge(int age); int getAge() const; void set原创 2015-11-25 17:02:01 · 249 阅读 · 0 评论 -
字符数组三种写法
char ch[] = "abcd"; // int num[] = {3, 4, 5, 6, 7};char ch[20];char *ch = new char[]; // person *p = new person();原创 2015-11-19 19:05:56 · 1109 阅读 · 0 评论 -
找出单个的数
int findSingle(int num[], int len){ int res = 0; for(int i = 0; i < len; i++) { res ^= num[i]; } return res;}int main(){ int num[] = {1,2,1,2,3,4,5,4,5}; cout<<find原创 2015-12-14 16:14:51 · 259 阅读 · 0 评论 -
contine 与 break 的区别
int main(){ int result = 0; for (int i = 1; i <= 100; i++) { if (i == 5) {// break; //结果为10 continue; //结果为5045 } result += i;原创 2015-12-14 16:33:50 · 405 阅读 · 0 评论 -
求级数的近似值
求s(x) = x - x3/(3*1!)+x5/(5*2!)-x7/(7*3!)+…,预定求和精度为10-5。 结果 s(2) = 0.882084#include <iostream>#include <math.h>using namespace std;double sum(double x){ double f = x; int f1 = 1; double原创 2015-12-29 14:31:34 · 1746 阅读 · 1 评论 -
冒泡法,使字符串从小到大排序
输出结果:azzf hhhg ssse#include <iostream>#include <cstring>using namespace std;void bubble_sort(char *name[], int n){ for(int i = 0; i < n - 1; i++) { for(int j = 0; j < n - i - 1; j++)原创 2015-12-29 15:44:00 · 1004 阅读 · 0 评论 -
字符转整型
输入:-123 输出:1 -123enum Sta {valid = 1, ivalid};Sta s = valid;int str2num(string str){ int i = 0; int flag = 1; int res = 0; if(str.length() == 0) { s = ivalid; }原创 2015-12-12 17:24:37 · 339 阅读 · 0 评论 -
值是否变化
输出: 2 2 3 3#include <iostream>using namespace std;void f1(int& i){ i++;}void f2(int i){ i++;}int f3(int i){ return i + 1;}void f4(int* i){ (*i)++;}int main(){ int i =原创 2015-12-16 20:58:43 · 321 阅读 · 0 评论 -
如果数组元素为递增排列,找出数组中的目标值
int binary_search(int num[], int len, int target){ int left = 0; int right = len - 1; while(left <= right) //有等于号,才能得到mid { int mid = (left + right) / 2; if(num[mid] >原创 2015-11-30 14:50:30 · 481 阅读 · 0 评论 -
vector基本用法
void vector_my(){ vector<int>num = {3, 4, 5, 6, 7};//1st vector<int> num(10, 9); //2nd int n[] = {1, 2, 3, 4, 5}; vector<int> num(n, n + 5); // 3rd for(int i = 10; i < 20; i++) {原创 2015-11-19 16:11:19 · 452 阅读 · 0 评论