gpt4 book ai didi

c - 结构体数组

转载 作者:行者123 更新时间:2023-11-30 14:51:26 24 4
gpt4 key购买 nike

#include<stdio.h>
#include<conio.h>
typedef struct Student
{
char nume[20],situatie[11];
int grupa,nr_credite;
} S;


void fct()
{
int n,i,c;
S st[100];

scanf("%d %d", &n, &c);

for(i=0;i<n;i++)
scanf("%s %d %d", &st[i].nume, &st[i].grupa, &st[i].nr_credite);

for(i=0;i<n;i++)
if (st[i].nr_credite>=n) st[i].situatie="Promovat";
else st[i].situatie="Nepromovat";
}

int main()
{
fct();
return 0;
}

对于给定的代码,这是我收到的错误。

Error: C:\Users\Rebekah\Downloads\e\main.c|20|error: assignment to expression with array type|

我在这里缺少什么?

最佳答案

st[i].situatie="Promovat";

数组是不可修改的左值。所以你不能那样做。请改用 strcpy (当您知道大小足以容纳复制的字符串时)。

strcpy(st[i].situatie,"Promovat");

还要检查 scanf 的返回值。

if( scanf("%d %d", &n, &c) != 2 ){
fprintf(stderr,"%s\n","Error in input");
exit(EXIT_FAILURE);
}

还有一件事你做错了

scanf("%s %d %d", &st[i].nume, &st[i].grupa, &st[i].nr_credite);
^^^

将会

scanf("%s %d %d", st[i].nume, &st[i].grupa, &st[i].nr_credite);

st[i].name 衰减为指向 char 的指针,但 &st[i].name 的类型为 char (*)[]scanf%s 格式说明符需要 char*

像这样编译代码gcc -Wall -Werror progname.c。尝试消除所有警告和错误。

关于c - 结构体数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48319122/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com