C语言 初学C语言,有道题不知道为什么无法运行,有大佬能帮忙看一下吗?多谢了!

 我来答
求你别开腔
2020-02-07 · TA获得超过125个赞
知道答主
回答量:73
采纳率:75%
帮助的人:17.7万
展开全部
这不是无法运行,程序是正常运行了,但是没有找到正确答案。
你看看是否逻辑判断是否出现了问题。
xoaxa
2020-02-07 · TA获得超过8610个赞
知道大有可为答主
回答量:6415
采纳率:72%
帮助的人:3472万
展开全部

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2020-02-07
展开全部
把void main()改成int main(),就可以运行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
笛音美妙
2020-02-07 · TA获得超过110个赞
知道小有建树答主
回答量:88
采纳率:0%
帮助的人:27.2万
展开全部

你的代码并非无法运行,而是运行结束了,返回值为100,用时0.179s。这一点通过你控制台的截图可以证明。

我在我的代码环境中将你的代码敲了一遍,似乎也能正常输出。但是你的代码似乎没有正常输出。这可能是你代码不够规范造成的。

通常,C语言程序的主函数应该返回0表示正常退出(也有人说不是必须的),但是你的程序返回100,这显然是不正常的。这可能是你的主函数写法不是特别规范(理论上来说void mian这种写法也是应该被编译器支持的);也有可能是你未编译新代码,直接运行之前未写好的旧代码编译的可执行程序致的造成的(我觉得这种可能性更大些)。

即便如此,与你同样的代码在我的环境下(mingw-w64 GCC 8.1.0)也能正常运行并输出(使用Clang编译器会因主函数没有返回值报错)。这也是为什么我觉得第二种错误的可能性更大。

ISO C11标准对主函数的写法作了如下限制:

ISO/IEC 9899:201x 草案截图

5.1.2.2.1 Program startup

The function called at program startup is named main. The implementation declares no

prototype for this function. It shall be defined with a return type of int and with no

parameters:

int main(void) { /* ... */ }

or with two parameters (referred to here as argc and argv, though any names may be

used, as they are local to the function in which they are declared):

int main(int argc, char *argv[]) { /* ... */ }

or equivalent; 10) or in some other implementation-defined manner.

关于主函数到底应该怎么写,可以参考知乎的这篇帖子


建议将你的代码修改如下,然后重新编译,再运行:

#include <stdio.h>


int main(void)

{

    int a, w, p;

    for (w = 1; w <= 25; w++)

    {

        for (a = 1; a <= 90; a++)

        {

            p = 100 - w - a;

            if (4 * w + 0.4 * a + 0.2 * p == 40)

                printf("%d,%d,%d\n", a, w, p);

        }

    }

    return 0;

}

理论上来说就能看到结果了。

本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式