| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 822 人关注过本帖
标题:我是新手,用Dev-c++写C语言,遇到未知错误,按照书上做的。
只看楼主 加入收藏
zcs34989
Rank: 2
等 级:论坛游民
帖 子:34
专家分:34
注 册:2011-8-17
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:7 
我是新手,用Dev-c++写C语言,遇到未知错误,按照书上做的。
程序代码:
#include <stdio.h>
#include <conio.h>
union computerinfo
{
      char name[20];
      float price;
      };
int main (void)
{
    union computerinfo com1={7000};        //错误出现在这里。。
    int type=0;
    printf("组装机(输入0)或品牌机(输入1)?\n");
    scanf("%d",&type);
    if (type==0)
    {
        printf("请输入组装机的价格:\n")
        scanf("%f",&com1.price);
        printf("组装机的价格是:%f\n",com1.price);           
    }
    if (type==1)
    {
        printf("请输入品牌机的型号:\n")
        scanf("%f",&com1.name);
        printf("品牌机的型号是:%s",com1.name);           
    }
    getch();
}
编译器: Default compiler
执行  gcc.exe...
gcc.exe "F:\c语言\c语言教程\c工程\xxxx.c" -o "F:\c语言\c语言教程\c工程\xxxx.exe"   -g3  -I"F:\c语言\编程工具\DEV-CPP\include"   -L"F:\c语言\编程工具\DEV-CPP\Lib" -g3
F:\c语言\c语言教程\c工程\xxxx.c: In function `main':
F:\c语言\c语言教程\c工程\xxxx.c:10: warning: overflow in implicit constant conversion //错误提示
F:\c语言\c语言教程\c工程\xxxx.c:17: error: syntax error before "scanf"
F:\c语言\c语言教程\c工程\xxxx.c:23: error: syntax error before "scanf"
执行结束


我按照书上做的  为什么总是错误啊??求解,谢谢啦
书上的编译环境是Lcc-win32,我用的是Dev—c++  不知是不是编译器的原因不?
在线等待。。。
搜索更多相关主题的帖子: C语言 
2011-08-18 19:43
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:8 
程序代码:
#include <stdio.h>
#include <conio.h>

union computerinfo {
    float price;        // 把这个 float 型变量放前面,不然后面的初始化会有溢出的警告,因为 char 型的范围是 -128 ~ 127
    char name[20];
};
int main(void) {
    union computerinfo com1 = { 7000 }; // 这里没错
    int type = 0;
    printf("组装机(输入0)或品牌机(输入1)?\n");
    scanf("%d", &type);
    if (type == 0) {
        printf("请输入组装机的价格:\n");    // 错在这里,少了 ';'
        scanf("%f", &com1.price);
        printf("组装机的价格是:%f\n", com1.price);
    }
    if (type == 1) {
        printf("请输入品牌机的型号:\n");    // 同上
        scanf("%s", com1.name);              // 用 %s ,不是 %f 。字符串不用加 & ,加了也不会错。
        printf("品牌机的型号是:%s", com1.name);
    }
    getch();
    return 0;                                    // int 形函数记得返回值
}


ps:你这教材用的编译器居然是 lcc ,有点奇葩

[ 本帖最后由 voidx 于 2011-8-18 20:03 编辑 ]
2011-08-18 19:58
QQ346957135
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:148
专家分:658
注 册:2011-8-9
收藏
得分:2 
图片附件: 游客没有浏览图片的权限,请 登录注册

A real warrior never quits.
2011-08-18 20:01
zcs34989
Rank: 2
等 级:论坛游民
帖 子:34
专家分:34
注 册:2011-8-17
收藏
得分:0 

程序运行正常了

float price;        
char name[20];

他们俩个必须得是这个顺序啊?
新手,不明白怎么回事,请具体说下,谢谢了。。

[fly]努力攻下C语言[/fly]
2011-08-18 20:08
zcs34989
Rank: 2
等 级:论坛游民
帖 子:34
专家分:34
注 册:2011-8-17
收藏
得分:0 
回复 3楼 QQ346957135
  记住教诲了,做到细心,不然会吃亏的

[fly]努力攻下C语言[/fly]
2011-08-18 20:11
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
回复 4楼 zcs34989
上面不是说了么,取值范围不够。
不过这个不是错误,只是个警告,错误是下面的几个地方,都给你做了注释了,自己看
2011-08-18 20:12
zcs34989
Rank: 2
等 级:论坛游民
帖 子:34
专家分:34
注 册:2011-8-17
收藏
得分:0 
了解了。。。

[fly]努力攻下C语言[/fly]
2011-08-18 20:17
daa20
Rank: 1
等 级:新手上路
帖 子:13
专家分:3
注 册:2011-8-17
收藏
得分:0 
#include <stdio.h>
#include <conio.h>
union computerinfo
{
      char name[20];
      float price;
};
void main ()
{
    union computerinfo com1;        //这样会更加简洁一些,反正你那也没必要是吧//
    int type;
    printf("组装机(输入0)或品牌机(输入1)?\n");
    scanf("%d",&type);
    if (type==0)
    {
        printf("请输入组装机的价格:\n");
        scanf("%f",&com1.price);
        printf("组装机的价格是:%f\n",com1.price);           
    }
    if (type==1)
    {
        printf("请输入品牌机的型号:\n");
        scanf("%s",&com1.name);
        printf("品牌机的型号是:%s",com1.name);           
    }
   
}
2011-08-18 21:01
快速回复:我是新手,用Dev-c++写C语言,遇到未知错误,按照书上做的。
数据加载中...
 
   



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

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