小白问题求大佬 帮帮忙 5C

图片说明图片说明图片说明版本vs2017 我想用逐语句调试 结果跳出这个 然而逐过程没问题 我也设置断点了
大佬们 这是啥么子情况 ![

 #include <stdio.h>
#include <stdlib.h>
int b[100];
void chucun(int m)
{
    b[m] = 1;

    for (; m >1;)
    {
        if (m % 2 == 0)
        {
            m = m / 2;
            b[m] = b[m] + 1;
        }
        else if (m % 2 == 1)
        {
            m = (3 * m + 1) / 2;
            b[m] = b[m] + 1;
        }
    }
}


int main(void)
{
    int a[100] = { 0 };
    int i;
    int n;
    int m;
    scanf_s("%d", &n,1);
    do
    {

        scanf_s("%d", &m,1);
        a[m] = 1;

        chucun(m);
    } while (n--);
    for (i = 0; i < 100; i++)
    {
        if (a[i] == 1 && b[i] == 1)
        {
            printf("%d\n", i);
        }



    }
    system("pause");
    return 0;
}

图片说明](https://img-ask.csdn.net/upload/201801/22/1516551614_621686.png)
版本vs2017 我想用逐语句调试 结果跳出这个 然而逐过程没问题 我也设置断点了
大佬们 这是啥么子情况 ![

4个回答

 #include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
int j_a[10000] = {0};
int save[110]= {0};

bool com(int a, int b) {
    return a > b;
}

int main() {
    int n;
    scanf("%d", &n);
    int m, sub = 0;
    int i;
    for (i = 0; i < n; i++) {
        cin >> m;
        if ( j_a[m] == 2 ) { 
            continue;
        }
        j_a[m] = 1;
        while (m != 1) { 
            if (m % 2) {
                j_a[m = (3 * m + 1) / 2] = 2;
            } 
            else {
                j_a[m /= 2] = 2;
            }
        }
    }
    for(i = 1; i < 110; i++) {
        if(j_a[i] == 1) {
            save[sub++] = i;
        }
    }
    sort(save, save + sub, com);
    for(i = 0; i < sub; i++ ) {
        printf("%d", save[i]);
        if(i != sub - 1) {
            printf(" ");
        }
        printf("\n");
    }
    return 0;
}  

图片说明

不知道你的题目是什么,你也没有给出你的输入数据,没法进一步分析。
但是比较明显的错误是
scanf_s("%d", &m,sizeof(int));
scanf_s("%d", &n,sizeof(int));

caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复xuezha009: 你的程序有下标越界,下标越界不一定意味报错,你的测试用例在我这里没有报错,但是结果不对,给你重新写了一个。
2 年多之前 回复
xuezha009
xuezha009 大佬 我主要是想问为什么调试 会出现那个界面 一堆英文的那个
2 年多之前 回复
xuezha009
xuezha009 回复caozhy: 上传了
2 年多之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复xuezha009: 你是怎么输入的,也要贴出来
2 年多之前 回复
xuezha009
xuezha009 回复caozhy: 我更新题目了 大佬
2 年多之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复xuezha009: 那怎么办呢。你又不愿意把问题说清楚。
2 年多之前 回复
xuezha009
xuezha009 改完之后 调试的时候还是跳出那个界面
2 年多之前 回复

scanf("%d", &n);
在你那里换成scanf_s

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐