帮我检查一下我的错误(C语言基础)

这是书上的一道题:编写程序,有5种教材,输入书名,册数,单价.然后按册数降序排序,并求出每种书的总金额。

下面是我写的代码;
main()
{
typedef struct book
{
char name[10];
int ceshu;
float danjia,zongjia;
}XX;
XX book[5],k;
int i,j;
for(i=0;i<5;i++)
scanf("%s%d%f",book[i].name,
book[i].ceshu,
book[i].danjia
);
for(i=0;i<4;i++)
for(j=i+1;j<5;j++)
if(book[i].ceshu<book[j].ceshu)
{
k=book[i];book[i]=book[j];book[j]=k;
}
for(i=0;i<5;i++)
{
book[i].zongjia=book[i].ceshu*book[i].danjia;
printf("%s\n%d\n%f\n%f\n",book[i].name,
book[i].ceshu,
book[i].danjia,
book[i].zongjia);
}
}

k=book[i];book[i]=book[j];book[j]=k;
是不行的,在C中结构体是不能用等号直接赋值的
可以另建一个数组,该数组的功能就是存储教材数组的下标。
温馨提示:内容为网友见解,仅供参考
第1个回答  2005-11-02
k变量应该声明为数组或指针变量
用来存放比较中的教材数组的下标或地址
我想用指针来做可能会更加简单的啊
你可以试一下啊

C语言,帮忙看一下哪里错了?
错误有以下几处:1、第二行,改为:int GC(int a,int b,int c)。2、第四行和第五行,去掉。3 、第六行,改为:if(a==b&&b&&c)printf("为等边三角形\n");4、第七行改为:return 1;其他不用改,应该就好了。如果还不行请留言。

C语言简单程序,帮看看哪错了
输入一个实数那行有个引号用了中文符,应该改为英文符;最后输出-a那段语句后面没有写“;”;定义变量a时为双精度浮点数,而输入时存为了单精度浮点数,存在溢出故障,会导致运行错误,见下图:应该改为如下 include<stdio.h> main(){ double a;printf("请输入一个实数:");scanf("%lf",&a);...

一道c语言编程题求大神解答,找一下我错在哪了,谢谢了?
错误1:宏定义最后没有分号,将#define D 500;改为#define D 500 错误2:l不是整数,因此将l定义为int型就错了 错误3:既然规定输入格式为P=,那么输入时就不能直接输入数值,而应在数值之前输入P=,例如输入P=6000 另外,程序的不妥之处:1、利润不一定是整数,因此将P定义为int型不妥 2、i...

C语言中的错误,帮我找一下。为什么我输入小数的时候,输出的不是“请输 ...
你的a、b、c定义的都是整数, x、y、z都是双精度的。x=a-(int)a,这句话就有错误,(int)a是强制转化成整数,而a本就是整数,一个整数减去一个整数 结果还是整数,和x定义的不同。double a,b,c;double x,y,z;scanf("%f,%f,%f",&a,&b,&c);x=(int)a-a;y=(int)b-b;z=(in...

谁能帮小妹检查一下我的C语言哪里错了?
main(){ int n,t,number=20;float a=2,b=1,s=0;for(n=1;n<=number;n++){ s=s+a\/b;t=a;a=a+b;b=t;} printf("sum is %9.6f\\n",s);}

c语言:如图,请问一下哪里出错了?
首先解答一下这个C语言代码出错的原因:第一个gets未定义:出现这个错误一般是没有包含相应的头文件,或者库里没有这个函数。这里应该是没有这个函数。gets(char *dest)是一个老的库函数,采用这个函数存在越界的安全隐患。它只有一个参数,如果输入的字符个数超过dest内存空间,程序可能失败,也可能被黑...

帮我查C语言的错误
1,prodct没声明 2,应该用"不能用”3,注意每个语句末尾的分号 4,输出整形要加%d include <stdio.h> int prodct(int a ,int b );main(){ int x,y;scanf("%x,%y",&x,&y);p=prodct(x,y)printf("The product is :%d",p);} int prodct(int a ,int b ){ int c ;c=a*b ;ret...

各位哥哥姐姐帮我找一下C语言错误,有三个错误
给,错误真不少啊,已经都改好了:include <stdio.h> main(){ double r,s,v;\/\/int pi=3.14; \/\/由于pi被赋值为3.14,所以需要定义为double型 double pi=3.14;\/\/printf(input r:\\n);printf("input r:\\n"); \/\/printf的格式使用错误 \/\/scanf("%d",r);scanf("%lf",&r); \/\/...

一个简单的C语言 选择语句,我哪里错了 帮我看下呀
include <stdio.h> int main(){ int x,y;printf("Please input x:");scanf("%d",&x);if(x>20) \/\/注意你的中文字符 )y=x+100;else if(x>=100||x<=20) \/\/ 注意你的中文字符|| y=x;else y=x-100;printf("x=%d,y=%d\\n",x,y);return 0;} ...

C语言题目四舍五入,帮我检查一下错误!
define N 1O 这里是1O错误了,应该是10

相似回答
大家正在搜