学渣的8/8华为笔试后记

1.输入任意个字符串,将大写字母转换成小写字母,小写字母转换成大写字母,其他字符保持不变

这道题比较简单,忘记保存代码了,大概是这样

#include<stdio.h>
#include<stdlib.h>
int main(){
    char*s=(char*)malloc(sizeof(char)*100);
    while(gets(s)){
        for(int i=0;s[i]!='\0';i++){
            if(s[i]<='Z'&&s[i]>='A')s[i]=s[i]-'A'+'a';
            else if(s[i]<='z'&&s[i]>='a')s[i]=s[i]-'a'+'A';
        }
       printf("%s",s);
    }
    return 0;
}

2.小偷进皇宫偷5个宝贝,每个宝贝的加之重量不一样,背包携带重量有限,如何使偷到的财富最大

输入:宝贝价值:6,3,5,4,6

           宝贝重量:2,2,6,5,4

            背包重量:10

输出:

偷到的宝贝总价值:15

这道题我以前做过,博客也写过,就直接用的二维数组+01背包问题

唯一要修改的就是先输入价值,再输入质量吗,并且有逗号(这个找了半天才发现)

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <iostream>
#include <algorithm>
using namespace std;
#define EMPTY
#define INF -65536
int w[15],v[15];//物品个数,物品质量weight,物品价值value
int dp[1000][1000]={0};
const int n=5;//物品个数
int main(){
    int C;//容量capability\

    for(int i=1;i<=n;i++)scanf("%d,",&v[i]);
    for(int i=1;i<=n;i++)scanf("%d,",&w[i]);
    scanf("%d",&C);

#ifdef EMPTY//要求价值最大化,可以不满
    for(int i=0;i<=n;i++)dp[i][0]=0;
    for(int i=0;i<=C;i++)dp[0][i]=0;
#else//必须装满
    dp[0][0]=0;
        for(int i=1;i<=C;i++)dp[0][i]=INF;
        for(int i=1;i<=n;i++)dp[i][0]=INF;
#endif
    for(int i=1;i<=C;i++){
        for(int j=1;j<=n;j++){
            dp[i][j]=w[j]<=i?max(dp[i][j-1],dp[i-w[j]][j-1]+v[j]):dp[i][j-1];
        }
    }
    cout<<dp[C][n]<<endl;
    return 0;
}

3.本题考查各种typedef后,某个自定义类型的最终形态是啥,输入分为两部分,共两行,第一行是一堆typedef定义,标准C++语句,以分号结束,这里不用考虑struct/union这类,只需要考虑基本类型和指针,第二行是制定某个自定义type输出为该自定义type的最终形态,
如输入:typedef int INT; typedef INT** INTP;
INTP
则输出:int * *
注意如果有指针类型,则指针表达的*和前面的类型中间间隔一个空格,和编译器的输出保持一致;另外,如果第一行输入的语句是编译不过的,或者第二行选择的type在第一行中没有定义,则输出none

这道题我输入都整了半天,,没过,第三题300分,前两道总共300分,只拿了300分不知道笔试能不能过

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值