第三十三天 关于运算与变量(c primer plus 84~150页)

1.有几个运算对象就是几元运算符

2.截断,在int作除法和类型转换都截断小数

3.typedef 定义一个新类型 把后面的变成前面的类型

4.求模,正数得正数,负数得负数

5.如果变量出现在函数多个参数,变量不自增自减。

   一个变量多次出现在一个表达式中不自增自减。

6.c=2+9的值为11。c=0的值为0。

7.副作用是对数据或文件的修改。序列点是函数执行结束的点,所以副作用在进入下一步之前发生。分号是一个序列点,任何一个完整的表达式也是一个序列点。

8.类型的从高到低排序是

long double,   double,   float,   unsign float,   

unsigned long long,   long long,   unsigned int,   int两种类型计算结果转化为较高类型。

循环没什么问题,可能学的比较扎实吧。

记一个题

设有 n个正整数 a1~an,将它们联接成一排,相邻数字首尾相接,组成一个最大的整数。

 

输入格式

第一行有一个整数,表示数字个数 n。

 

第二行有 n个整数,表示给出的 n 个整数ai

 

输出格式

一个正整数,表示最大的整数

样例

输入

3
13 312 343

输出

34331213

看大佬都是用c++写的,像这样

#include

#include

#include

using namespace std;

 

string s[21];int n;

bool cmp(const string &a,const string &b) { 

    return (a+b > b+a);

}

int main(void) {

    cin >> n;

    for(int i=1;i<=n;++i) cin >> s[i];

    sort(s+1,s+n+1,cmp);

    for (int i=1;i<=n;++i) cout << s[i];

    return 0;

}

这不重要,我在想用c++能写为什么c不行

有个脑洞不知道行不行

用一个二维数组存每个变量,然后用strcat函数和for循环把他们缝起来,然后再把他转换回数字,一个一个比较,把最大的选出来输出。

明天试试,睡了睡了,晚安

 

你可能感兴趣的:(c语言,算法,c++)