注册 登录
编程论坛 C语言论坛

这是为什么啊,没啥问题啊

暴君Dentiny 发布于 2019-09-05 22:24, 2583 次点击
程序代码:
//#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
int main()
{
    struct data
    {
        int a;
        char b[60];
        float c;

    }data1;

    data1.a = 60;
    strcpy(data1.b, "zhuang");
    data1.c = 1.99;
    printf("%-d\t%-s\t%- 3.3f", data1.a,data1.b,data1.c);
    printf("%f",data1.a+data1.c );
    return 0;
}
只有本站会员才能查看附件,请 登录
为什么会这样
7 回复
#2
bcbbcclbbc2019-09-06 12:11
只有本站会员才能查看附件,请 登录

 
只有本站会员才能查看附件,请 登录

网站首页上的在线编程
这运行似乎没什么大问题

[此贴子已经被作者于2019-9-6 12:15编辑过]

#3
Mr_doge2019-09-06 15:53
如果是使用VS编译,很多由编译器实现的隐式转换都会给你报警告,需要使用匹配的对应变量类型才能参与运算,VS在语法规则上和C90标准有很多细节差异,使用gcc编译的话很多细节就会由编译器隐式处理了,至于VS的C++编译器为何会加入大量的语法细节限制,个人猜测应该是当年使用C和C艹构建系统踩了很多坑之后留下了的传统
另外VS编译器使用的是VC++编译器而不是C编译器,在一些细节上C++和C也是有差异的
#4
自学的数学2019-09-07 21:15
该程序没问题,运行结果如下:
60      zhuang    1.99061.990000
(注:我用的编译器是devcpp)
#5
forever742019-09-07 22:34
需要澄清的是,绝大多数能运行并取得预期结果的程序都不是没问题的。
没问题是级别很高的正确,不要轻易这样判断。
软件环境,硬件环境,网络环境和用户操作都有可能使一个看起来“没问题”的程序出现这样那样的问题。
#6
zhouaichun2019-09-10 15:41
该程序没问题,运行结果如下:
只有本站会员才能查看附件,请 登录

用C-Free5编译
#7
c小白23332019-09-10 19:46
程序代码:

#include<stdio.h>
#include<string.h>
int main()
{
    struct data
    {
        int a;
        char b[60];
        double c;

    }data1;

    data1.a = 60;
    strcpy(data1.b, "zhuang");
    data1.c = 1.99;
    printf("%-d\t%-s\t%-3.3f", data1.a, data1.b, data1.c);
    printf("%f", data1.a + data1.c);
    return 0;
}

float 改成double
项目-属性-c/c++常规-SDL检查-否
你的程序在你的编译器上就能运行了
#8
c小白23332019-09-10 19:52
或者加上  你前面的那个就行了
#define _CRT_SECURE_NO_WARNINGS
strcpy 和 scanf应该属于一类问题
都是不安全的提示
scanf的安全用法是用scanf_s函数
或者就上面的两种改法
关于scanf_s的用法前面的帖子里有人问了  你可以看一下
1