jack-pudding134 2022-12-15 23:32 采纳率: 25%
浏览 16

相同代码放在不同的地方输出不同

问题遇到的现象和发生背景

相同的代码放在不同的地方输出不同
实现加密

遇到的现象和发生背景,请写出第一个错误信息
用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
#include <iostream>
using namespace std;
int cplcode[1000];
int num[1000];
int cnt;
void complicate(int code[],const char* words,int len) {

    int i = 0;
    for (int j = 0; j < len; j++) {
        while (*words) {
            cplcode[j] = *(words++) + code[(i++) % 7];//此数组应该存的是30个数字
            cout << char(cplcode[j]);
            cnt++;
        }
    }
}
//void simplify(int code[],int len) {
//    int i = 0;
//    for (int j = 0; j < len; j++) {
//        num[j] = cplcode[j] - code[i % 7];
//        //cout << cplcode[j]<< " ";
//        i++;
//    }
//
//}
int main() {
    int code[] = { 4,9,6,2,8,7,3 };
    const char* words = "the result of 3 and 2 is not 8";
    int len1 = strlen(words);
    complicate(code, words,len1);
    int len2 = cnt;
    for (int i = 0; i < len2; i++) {
        cout << cplcode[i] << " ";//但我在这里却输出的是不同的数字
}
    //simplify(cplcode,len2);
    return 0;
}

运行结果及详细报错内容
我的解答思路和尝试过的方法,不写自己思路的,回答率下降 60%
我想要达到的结果,如果你需要快速回答,请尝试 “付费悬赏”
  • 写回答

1条回答 默认 最新

  • 快乐鹦鹉 2022-12-16 09:20
    关注
          cplcode[j] = *(words++) + code[(i++) % 7];//此数组应该存的是30个数字
            cout << char(cplcode[j]);
    

    你这个while循环一直在给同一个j下标元素进行赋值啊
    另外由于words++一直向后移动word指针,导致下次for循环时,while条件直接不满足就拉倒了,实际cplcode就第一个元素有值,因此main里只能输出第一个值,后面全是0

    评论 编辑记录

报告相同问题?

问题事件

  • 请详细说明问题背景 12月16日
  • 创建了问题 12月15日

悬赏问题

  • ¥15 C语言设计一个简单的自动换档程序
  • ¥15 关于logstash转发日志时发生的部分内容丢失问题
  • ¥17 pro*C预编译“闪回查询”报错SCN不能识别
  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。