计蒜客 泥塑课 C语言 求大神看看我的程序哪里错了?
答案:1 悬赏:70 手机版
解决时间 2021-04-04 10:00
- 提问者网友:浪荡绅士
- 2021-04-03 21:33
计蒜客 泥塑课 C语言 求大神看看我的程序哪里错了?
最佳答案
- 五星知识达人网友:像个废品
- 2021-04-03 22:50
没太看懂你的代码
不过可以确定你的问题
#include
#include
typedef struct stu {int length;int width;int height ;char name[];}stu;
int main()
{
int a,i,sum=0,ave;
scanf("%d",&a);
do
{
scanf("%d",&a);
int A[a];
for(i=0;i A[a]=a-1;
for(i=0;i stu A[a]; //上面的for循环有用吗?如果有用 需要大括号把循环体括起来,不然就只有这一句了。
for(i=0;i scanf("%d%d%d%c",&A[a].length,&A[a].width,& A[a].height,&A[a].name);
for(i=0;i sum+=A[a].length*A[a].width*A[a].height;
ave=sum/a;
int x,y;
for(i=0;i {
if(A[a] x=a;
else if((A[a]>ave)
y=a;
}
printf("%c took clay from %c.
",A[y].name,A[x].name);
}
while(a!=-1);
return 0;
}追问 不好意思刚才好多地方打错了 那地方也是一处。。。
编译器显示的问题是
Main.c: In function 'main':
Main.c:16:5: error: expected expression before 'struct'
struct stu stu i;
^
不知道struct前面有什么错么?下面是修改的
追答想知道你这里的
for(i = 0; i < a; i++)
struct stu stu i;
这个是想做什么
这里语法是不对的
首先循环里面只有定义变量一句,这个是没意义的
而你定义变量的时候
struct stu是变量类型,后一个stu是什么?变量名吗?那这里的i又是什么?
整体这部分是没道理的。
还有你后面的
stu i.length一类的调用,在C中也是非法的。
总之你这个程序问题多多,如果你是刚学,那么建议你先不要搞这么大的程序,先打好基础。
如果你是学过其它语言的,那么同样先了解一下C的语法结构,再写这样的程序。追问恩 谢谢哈哈
我想用stu i作为变量名 是不是这地方不对?
那怎么用循环定义多个结构体的变量呢?追答C语言循环不能定义多个变量名
如果编译器支持C99 那么这里可以直接定义数组
比如 struct stu stu[a];
如果不支持c99,那么只能使用动态数组,
struct stu * stu = (struct stu*)malloc(sizeof(struct stu) * a);
而访问的时候均可以用stu[i] 来访问第i个元素。
不过可以确定你的问题
#include
#include
typedef struct stu {int length;int width;int height ;char name[];}stu;
int main()
{
int a,i,sum=0,ave;
scanf("%d",&a);
do
{
scanf("%d",&a);
int A[a];
for(i=0;i A[a]=a-1;
for(i=0;i stu A[a]; //上面的for循环有用吗?如果有用 需要大括号把循环体括起来,不然就只有这一句了。
for(i=0;i scanf("%d%d%d%c",&A[a].length,&A[a].width,& A[a].height,&A[a].name);
for(i=0;i sum+=A[a].length*A[a].width*A[a].height;
ave=sum/a;
int x,y;
for(i=0;i {
if(A[a] x=a;
else if((A[a]>ave)
y=a;
}
printf("%c took clay from %c.
",A[y].name,A[x].name);
}
while(a!=-1);
return 0;
}追问 不好意思刚才好多地方打错了 那地方也是一处。。。
编译器显示的问题是
Main.c: In function 'main':
Main.c:16:5: error: expected expression before 'struct'
struct stu stu i;
^
不知道struct前面有什么错么?下面是修改的
追答想知道你这里的
for(i = 0; i < a; i++)
struct stu stu i;
这个是想做什么
这里语法是不对的
首先循环里面只有定义变量一句,这个是没意义的
而你定义变量的时候
struct stu是变量类型,后一个stu是什么?变量名吗?那这里的i又是什么?
整体这部分是没道理的。
还有你后面的
stu i.length一类的调用,在C中也是非法的。
总之你这个程序问题多多,如果你是刚学,那么建议你先不要搞这么大的程序,先打好基础。
如果你是学过其它语言的,那么同样先了解一下C的语法结构,再写这样的程序。追问恩 谢谢哈哈
我想用stu i作为变量名 是不是这地方不对?
那怎么用循环定义多个结构体的变量呢?追答C语言循环不能定义多个变量名
如果编译器支持C99 那么这里可以直接定义数组
比如 struct stu stu[a];
如果不支持c99,那么只能使用动态数组,
struct stu * stu = (struct stu*)malloc(sizeof(struct stu) * a);
而访问的时候均可以用stu[i] 来访问第i个元素。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯