高手进来帮忙解决Borland C++中的问题

来源:百度知道 编辑:UC知道 时间:2024/05/26 16:24:48
下面程序是我写的很简单的test程序,相信高手都能看懂!
#include<stdio.h>
#define N 3
typedef struct student
{ long xuehao;
float score[2];
} student;
void main()
{
//int a[N],b[N];
int i=0;
student stu[N];
printf("input:");
for(i=0;i<N;i++)
{
//scanf("%d%d",&a[i],&b[i]);
scanf("%ld%f%f",&stu[i].xuehao,&stu[i].score[0],&stu[i].score[1]);
}
for(i=0;i<N;i++)
{
printf("%ld\t%f\t%f\t\n%",stu[i].xuehao,stu[i].score[0],stu[i].score[1]);
//printf("%d\t%d\n",a[i],b[i]);
}
//system("Pause");
}

注释掉的是test数组赋值,没有注释的是test结构体赋值。
在Borland C++中运行时,输入多个数,以回车作为数与数之间的间断,数组可以赋值,结构体不行。空格间断也不行。我另外用一个汇编工具Dev_C++可以用,没有一点问题。

因为帮别人写了一个作业,他们老师用的是Borland C++,所以我也没有办法 啊。

请问高手这个问题怎么解决?

可行的办法,给100分奖励
具体的什么版本Borland C++
我就不知道了
好像是Borland

这是Borland C的bug,没办法啊.把程序写出来就行了,老师运行不行的话那也没办法,这不是自己的错误.

那老师用的是什么版Borland C++,上面代码没改动,C++ Builder 6测试时结构体可以赋值,并可以正常输出

他们的老师是个猪!!

经测试,程序没有问题

请注意代码的复制粘贴务必要分清半角全角,中文英文标点符号

我用的是C++ Builder 6.0 没有任何问题

试试做如下修改:
1.将结构成员score的类型修改为double型:
double score[2];
2.将输入代码中的%f修改为%lf:
scanf("%ld%lf%lf",&stu[i].xuehao,&stu[i].score[0],&stu[i].score[1]);