
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;
} 展开
#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;
} 展开
4个回答
展开全部
可以赋值啊!
如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;
}
如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;
}
展开全部
二维和一维在定义的时候进行初始化都不是必须的。它们都可以在程序的运行时进行输入赋值,或采用其他方式赋值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
只能用strcpy赋值,不能用=赋值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
char c[20]="0",d;这句话有问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询