为什么一道简单的oj题一直wa啊,我人傻了,哪个大佬帮瞅两眼呗。

题目如下
图片说明

就是找数字,能被7除不能被4除,还要尽可能小。

我的代码:

#include<stdio.h>
#include<stdlib.h>
#include<iostream>
//#pragma warning(disable:)
using namespace std;
int is(float m) {
    if (((int)m) == m) 
        return 1;
    else
        return 0;
}
int lucky(float m) {
    if ((is(m / 7))==1 && (is(m / 4))==0) {
        return (int)m;
    }
    float p = ((int)(m / 7))+1.0f;
    while (is((p*7)/4)) {
        p++;
    }
    if (p > 14) {
        return (int)m;
    }
    return (int)p * 7;
}
int main() {
    int num =0, m = 1, intput[110] = { 0 },output[110] = {0};
    cin >> num;
    intput[0] = num;
    while (num>=1) {
        cin >> intput[m];
        output[m-1] = lucky(intput[m]);
        num--;
        m++;
    }
    num = m-1;
    m = 0;
    while (m < num) {
        cout << output[m] << endl;
        m++;
    }
    system("pause");
    return 0;
}

输入和输出的方式改了又改,一直wa,很烦,谁能指点下啊,感谢感谢
图片说明
这是程序运行结果截图

c++

2个回答

是不是输入一个样例就会直接输入结果,而不是全部输入之后,再一起输出?

qq_16739231
&junya 回复KingJordon: 好,我试试
8 个月之前 回复
KingJordon
console.log( ) 回复&junya: 你试试输入之后立马输出 别放数组一起输出
8 个月之前 回复
qq_16739231
&junya 我的是输入一个之后就会运算产生一个答案,答案存在数组里,等输入结束后一起输出,感觉没毛病啊
8 个月之前 回复

建议直接用取余,比如

cin>>n;
if( (n%7==1) && (n%4 != 1) )
{
        //保存你这个数,再与下一个对比
}
qq_16739231
&junya 回复Cin_Atalaxia: 刚开始觉得比较简单,就没注释了,尴尬
8 个月之前 回复
Cin_Atalaxia
Cin_Atalaxia 回复&junya: 你的代码我看得不是很懂,你应该添加一些注释。
8 个月之前 回复
qq_16739231
&junya 你觉得我的算法出问题了吗
8 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐