| 网站首页 | 业界新闻 | 小组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 424 人关注过本帖
标题:这是为什么啊,没啥问题啊
只看楼主 加入收藏
暴君Dentiny
Rank: 2
等 级:论坛游民
帖 子:132
专家分:43
注 册:2019-5-6
结帖率:89.47%
  已结贴   问题点数:20  回复次数:7   
这是为什么啊,没啥问题啊
程序代码:
//#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;
}
为什么会这样
附件: 您没有浏览附件的权限,请 登录注册
搜索更多相关主题的帖子: int printf strcpy include float 
【推荐】大型监控、工控、组态VC++./C#源码组件库2019下载!
【推荐】超50万数控、建模仿真、电力VC++/.NET图形源码库下载!
【推荐】专业CAD\GIS\业务流程VC++/C#可视化图形软件源码库下载!
2019-09-05 22:24
bcbbcclbbc
Rank: 4
等 级:业余侠客
威 望:3
帖 子:121
专家分:295
注 册:2019-8-15
  得分:4 

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

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

附件: 您没有浏览附件的权限,请 登录注册
2019-09-06 12:11
Mr_doge
Rank: 5Rank: 5
等 级:贵宾
威 望:10
帖 子:159
专家分:385
注 册:2018-6-28
  得分:4 
如果是使用VS编译,很多由编译器实现的隐式转换都会给你报警告,需要使用匹配的对应变量类型才能参与运算,VS在语法规则上和C90标准有很多细节差异,使用gcc编译的话很多细节就会由编译器隐式处理了,至于VS的C++编译器为何会加入大量的语法细节限制,个人猜测应该是当年使用C和C艹构建系统踩了很多坑之后留下了的传统
另外VS编译器使用的是VC++编译器而不是C编译器,在一些细节上C++和C也是有差异的
2019-09-06 15:53
自学的数学
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:30
帖 子:781
专家分:3276
注 册:2017-11-15
  得分:4 
该程序没问题,运行结果如下:
60      zhuang    1.99061.990000
(注:我用的编译器是devcpp)
2019-09-07 21:15
forever74
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:CC
等 级:贵宾
威 望:25
帖 子:1235
专家分:2070
注 册:2007-12-27
  得分:4 
需要澄清的是,绝大多数能运行并取得预期结果的程序都不是没问题的。
没问题是级别很高的正确,不要轻易这样判断。
软件环境,硬件环境,网络环境和用户操作都有可能使一个看起来“没问题”的程序出现这样那样的问题。

别人能不等于你能,别人不能不等于你不能
不要问别人能不能,要说:我能
2019-09-07 22:34
zhouaichun
Rank: 1
等 级:新手上路
帖 子:6
专家分:8
注 册:2015-4-6
  得分:4 
该程序没问题,运行结果如下:
用C-Free5编译
附件: 您没有浏览附件的权限,请 登录注册
2019-09-10 15:41
c小白2333
Rank: 5Rank: 5
来 自:中国
等 级:贵宾
威 望:10
帖 子:113
专家分:353
注 册:2019-6-17
  得分:4 
程序代码:
#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检查-否
你的程序在你的编译器上就能运行了

宝剑锋从磨砺出,梅花香自苦寒来。
2019-09-10 19:46
c小白2333
Rank: 5Rank: 5
来 自:中国
等 级:贵宾
威 望:10
帖 子:113
专家分:353
注 册:2019-6-17
  得分:0 
或者加上  你前面的那个就行了
#define _CRT_SECURE_NO_WARNINGS
strcpy 和 scanf应该属于一类问题
都是不安全的提示
scanf的安全用法是用scanf_s函数
或者就上面的两种改法
关于scanf_s的用法前面的帖子里有人问了  你可以看一下

宝剑锋从磨砺出,梅花香自苦寒来。
2019-09-10 19:52
快速回复:这是为什么啊,没啥问题啊
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.099896 second(s), 8 queries.
Copyright©2004-2019, BCCN.NET, All Rights Reserved