C语言字符数组初始化以后是不是不能再给字符数组赋值了?

这段代码报错:#include<stdio.h>intmain(){charc[20]="0",d;charf[15]="0";longa;intb;for(;scanf... 这段代码报错:
#include<stdio.h>
int main()
{
char c[20]="0",d;
char f[15]="0";
long a;
int b;
for(;scanf("%d%s%d",&a,c,&b)!=EOF;)
{

if(b<59)f="FAIL";
if(b>=59&&b<69)f="PASS";
if(b>=69&&b<79)f="AVERAGE";
if(b>=79&&b<89)f="GOOD";
if(b>=69)f="EXCELLENT";
d=getchar();
printf("%d %s %s\n",a,c,);
}
return 0;
}
展开
 我来答
竹竹风子kemi
2012-10-30 · TA获得超过3697个赞
知道大有可为答主
回答量:4589
采纳率:47%
帮助的人:1223万
展开全部
可以赋值啊!
如f="FAIL"这个地方,这里的f是地址,f 数组的首地址,一个字符串赋值过去,提示出错的
这个是常犯的错误(我课设的时候也犯了一下,再次复习一下),要注意了。
这个地方顺便补充一下,字符指针那里可以直接赋值,这个数组和指针有区别的。具体的,看看书呐,书上有详细说明的。

用个strcpy();函数,头文件是string.h

给你改过了,你看看吧
#include<stdio.h>
#include <string.h>
int main()
{
char c[20]="0",d;
char f[15]="0";
long a;
int b;
for(;scanf("%d%s%d",&a,c,&b)!=EOF;)
{

if(b<59)strcpy(f,"FAIL");
if(b>=59&&b<69)strcpy(f,"PASS");
if(b>=69&&b<79)strcpy(f,"AVERAGE");
if(b>=79&&b<89)strcpy(f,"GOOD");
if(b>=69)strcpy(f,"EXCELLENT");
d=getchar();
printf("%d %s %s\n",a,c,f);
}
return 0;
}
创作者1GxShLNuKa
2019-01-24 · TA获得超过3万个赞
知道小有建树答主
回答量:1.3万
采纳率:30%
帮助的人:728万
展开全部
二维和一维在定义的时候进行初始化都不是必须的。它们都可以在程序的运行时进行输入赋值,或采用其他方式赋值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
arongustc
科技发烧友

2012-10-30 · 智能家居/数码/手机/智能家电产品都懂点
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7270万
展开全部
只能用strcpy赋值,不能用=赋值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
北哈日0s
2012-10-30
知道答主
回答量:23
采纳率:0%
帮助的人:24.6万
展开全部
char c[20]="0",d;这句话有问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式