进制转换
#include <iostream>
#include <string>
#include <vector>
using namespace std;
void func(int x){
vector<int> res ;
while(x > 0){
res.push_back(x % 2);
x /= 2;
}
for(int i = res.size()-1;i >= 0;i --){
printf("%d", res[i]);
}
puts("");
}
int main(){
int n;
cin >> n;
for(int i = 0;i < n;i ++){
int y;
cin >> y;
func(y);
}
return 0;
}
回文串
#include <iostream>
using namespace std;
int main(){
string s;
cin >> s;
string flag = "true";
for(int i = 0,j = s.size()-1;i <= j;i ++,j --){
if(s[i] != s[j]) flag = "false";
}
cout << flag << endl;
return 0;
}
图书管理系统
引用张指导的代码,本人是搬运工,只为了记录一下自己的学习过程
#include <iostream>
#include <algorithm>
using namespace std;
const int N = 3; // 统计30本书的销售情况,这里为了方便输入定义为3
const int M = 5; // 购买该出版社的读者有100人,这里为了方便输入定义为5
//定义书籍结构体
struct Book
{
string name{"book_name"}; // 书名
int num{100}; // 库存
double price{50}; // 价格
int sale{0}; // 销量
//构造函数可以不写
bool operator< (const Book& t) const
{
return sale > t.sale;
}
}book[N];
//这里使用了快排来排序,其实插入排序,冒泡等等均可,甚至直接调用sort也可
//l为数组第一个元素的下标,r为最后一个元素下标,x为基准元素
void quick_sort(int l, int r)
{
if (l >= r) return ;
int i = l - 1, j = r + 1, x = book[l + r >> 1].sale;
while (i < j)
{
do i ++; while (book[i].sale > x);
do j --; while (book[j].sale < x);
if (i < j) swap(book[i], book[j]);
}
quick_sort(l, j);
quick_sort(j + 1, r);
}
int main()
{
//繁琐的输入输出
puts("请输入书籍信息:");
for (int i = 0; i < N; i ++)
{
printf("请依次输入第%d本书的书名,库存量,单价:\n", i + 1);
cin >> book[i].name >> book[i].num >> book[i].price;
}
puts("请依次输入要销售的书的书名:");
for (int i = 0; i < M; i ++)
{
printf("第%d本书的书名:", i + 1);
string s;
cin >> s;
//遍历书籍库
for (Book &b : book)
{
if (s == b.name)
{
b.sale ++;
b.num --;
puts("出库成功!");
break;
}
}
}
// 等价于sort(book, book + N);
quick_sort(0, N - 1);
//输出
for (int i = 0; i < N; i ++)
printf("书名:%s 库存:%d 单价:%lf 销量:%d\n", book[i].name.c_str(), book[i].num, book[i].price, book[i].sale);
// 为了与C兼容,在C中没有string类型,故必须通过string类对象的成员函数c_str()把string对象转换成C中的字符串样式。
return 0;
}
/**
* 输入示例:
* 高数18讲 20 38.8
* 张宇1000题 30 28.8
* 基础30讲 40 88.8
*/
/**
* 输出:
请输入书籍信息:
请依次输入第1本书的书名,库存量,单价:
高数18讲 20 38.8
请依次输入第2本书的书名,库存量,单价:
张宇1000题 30 28.8
请依次输入第3本书的书名,库存量,单价:
基础30讲 40 88.8
请依次输入要销售的书的书名:
第1本书的书名:高数18讲
出库成功!
第2本书的书名:高数18讲
出库成功!
第3本书的书名:高数18讲
出库成功!
第4本书的书名:张宇1000题
出库成功!
第5本书的书名:基础30讲
出库成功!
书名:高数18讲 库存:17 单价:38.800000 销量:3
书名:张宇1000题 库存:29 单价:28.800000 销量:1
书名:基础30讲 库存:39 单价:88.800000 销量:1
*/