免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1635 | 回复: 6
打印 上一主题 下一主题

[C] 求助!C语言结构体问题(TC 2.0环境下) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-12-18 15:50 |只看该作者 |倒序浏览
最近在帮朋友写个程序,遇到了些困难,不知如何解决,请各位高手赐教!不胜感激!
prod定义为全局变量了,在函数void init info()中为各个成员负值。结果在输入price变量时出错,程序终止。屏幕显示 scanf:floating point formats not linked. Abnormal program termination。以下是变量的定义、声明和用于输入的函数。
struct product
{char name[10];
long int quantity;
float price;
char discount[10];
};

struct product prod[4],*pointprod[4];


void init_info() /*初始化仓库内产品信息:名称、数量(现有库存量)、单价*/
{
  int i;
  printf("**********initiate the information of all kinds of products in storage**********";
  draw_border(2,7,78,25);
  for(i=1;i<3;i++)
  {
  textcolor(GREEN);
  gotoxy(2,2);
  cprintf("lease input all the information of the products:\n";
  gotoxy(2,3);
  cprintf("No. %d product",i);
  gotoxy(2,5);
  cprintf("Name:";
  gotoxy(2,6);
  cprintf("Quantity:";
  gotoxy(2,7);
  cprintf("rice(per):";
  gotoxy(2,;
  cprintf("Discount:";
  textcolor(YELLOW);
  gotoxy(9,5);
  scanf("%s",prod.name); /*名称*/
  gotoxy(12,6);
  scanf("%ld",&prod.quantity); /*数量*/
  gotoxy(14,7);
  scanf("%f",&prod.price); /*单价*/
  gotoxy(13,;
  scanf("%s",prod.discount); /*折扣率*/
  clrscr();
}
window(1,1,80,25);
clrscr();
return;
}

论坛徽章:
0
2 [报告]
发表于 2004-12-19 13:57 |只看该作者

求助!C语言结构体问题(TC 2.0环境下)

恰巧头几天在书上看到一个这样的情况,给你抄过来看看有没有用。
static void forcefloat(float *p)
{float f = *p; forcefloat(&f);}
把它添加到文件里,但不要调用它。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
3 [报告]
发表于 2004-12-19 21:50 |只看该作者

求助!C语言结构体问题(TC 2.0环境下)

原帖由 "blueprint" 发表:
恰巧头几天在书上看到一个这样的情况,给你抄过来看看有没有用。
static void forcefloat(float *p)
{float f = *p; forcefloat(&f);}
把它添加到文件里,但不要调用它。

      

论坛徽章:
1
15-16赛季CBA联赛之四川
日期:2016-02-15 17:12:32
4 [报告]
发表于 2004-12-20 11:26 |只看该作者

求助!C语言结构体问题(TC 2.0环境下)

可能是缓冲的问题 就是long int 还在缓冲里 把它清空
好像stdin 也是有缓冲的      

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
5 [报告]
发表于 2004-12-20 13:13 |只看该作者

求助!C语言结构体问题(TC 2.0环境下)

很奇怪的问题。。。
但改成这样就可以:
float price;
scanf("%f", &price);
prod.price = price;

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
6 [报告]
发表于 2004-12-20 13:23 |只看该作者

求助!C语言结构体问题(TC 2.0环境下)

记得TC2.0好像有一个scanf不能正确读入float类型的bug。

论坛徽章:
0
7 [报告]
发表于 2004-12-21 16:56 |只看该作者

求助!C语言结构体问题(TC 2.0环境下)

多谢各位,我后来又试了,定义了float类型的数组,可以用scanf负值,但是如果在结构里定义float类型,然后在定义该类型的元素的数组,其中的float就不能用scanf负值,后来别人提了个建议,就是定义成字符数组,输入后用atof来转换成float类型,我试了一下,可以了,再次感谢各位!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP