版本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 我想用逐语句调试 结果跳出这个 然而逐过程没问题 我也设置断点了
大佬们 这是啥么子情况 ![
不知道你的题目是什么,你也没有给出你的输入数据,没法进一步分析。
但是比较明显的错误是
scanf_s("%d", &m,sizeof(int));
scanf_s("%d", &n,sizeof(int));
#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("%d", &n);
在你那里换成scanf_s