在.h中声明数组,在.c中初始化要怎么写?

我在.h中声明了intintarray[300];在.c中,intarray={0};会报错... 我在.h中声明了 int intarray[300];
在.c中,intarray={0};会报错
展开
 我来答
闷骚帝帝
2018-03-29
知道答主
回答量:9
采纳率:0%
帮助的人:8920
展开全部
/**
* @找到表头往后的第一个可用位置的指针
*/
void findAddPos(){
if(head->next->cardNo!=0||head->next==head){ addPos=head;
return;
}

//if(addPos==head||addPos->next==head) return;

Card * temp=head->next;

while(temp->next!=head){

if(temp->cardNo+1!=temp->next->cardNo){
break;
}
temp=temp->next;
}
Card* temp1=head;
cout<<"findAddPos"<<endl;
do{
cout<<temp1->cardNo<<" ";
temp1=temp1->next;
}
while(temp1!=head);

addPos=temp;
}
/**
找到指定卡号的卡
*/
Card * findAppointedCard( int cardNo){
Card * temp=head->next;

while(temp!=head&&temp->cardNo!=cardNo){
temp=temp->next;
}
cout<<"find the appointed "<<temp->cardNo;
return temp;
}
/**
销毁指定卡号的卡
*/
void destroyAppointedCard(int cardNo){
Card * temp=findAppointedCard(cardNo);
cout<<"card will be deleted "<<temp->cardNo<<endl;
if(temp==head){
return;
}
cout<<"prev is "<<temp->prev->cardNo<<endl;
cout<<"next is"<<temp->next->cardNo<<endl;
cout<<"card was deleted "<<temp->cardNo<<endl;
//Card * prev=temp->prev;
//_ListDel((TListHead*)(temp->prev),(TListHead*)(temp->next));
Card * prev=temp->prev;
Card * next=temp->next;
next->prev=prev;
prev->next=next;
// ptNext->prev = ptPrev;
//ptPrev->next = ptNext;
temp->prev=NULL;
temp->next=NULL;
/**
Card* temp1=head;
do{
cout<<temp1->cardNo<<" ";
temp1=temp1->next;
}
while(temp1!=head);
*/
cardsNum[4]-=1;
cardsNum[temp->type]-=1;

free(temp);
findAddPos();

}
/*
@ 开卡,分配卡号和卡信息
@ 入参:enCard,卡类型; charge: 充值
@ 出参: cardNo, 分配的卡号
@ 返回值: EN_RETURN_SUCC,分配成功; EN_RETURN_CARD_OVERLOW, 分配失败;
*/
EN_RETURN_CODE AssignCard(unsigned int &cardNo, EN_CARD_TYPE enCard, unsigned int charge)
{
//单次充值超过999元,直接返回错误
if(charge > MAX_BALANCE){
return EN_RETURN_RECHARGE_OVERFLOW;
}
//办卡数量超过99张,直接返回错误
if(cardsNum[4]>=MAX_CARD_NUM){
return EN_RETURN_CARD_OVERLOW;
}
Card * temp=(Card *)malloc(sizeof(Card));
temp->balance=charge;
temp->type=enCard;

if(ListEmpty((TListHead*)head)){
ListAddHead((TListHead*)temp,(TListHead*)head);
temp->cardNo=0;
addPos=temp;
}else{

//插在addPos后面
ListAddHead((TListHead*)temp,(TListHead*)(addPos->next));
temp->cardNo=addPos->cardNo+1;
}

cardNo=temp->cardNo;

Card * temp1=head;

do{
cout<<temp1->cardNo<<" ";
temp1=temp1->next;

}
while(temp1!=head);

//需要找到可以插入的最小位置,考虑到单程卡可注销
findAddPos();

cardsNum[enCard]+=1;

cardsNum[4]+=1;
return EN_RETURN_SUCC;
}
/*
@ 卡扣费
@ 入参:cardNo,卡号; enCard, 卡类型; deductPrice, 扣费票价
@ 出参: balance, 扣费后的余额
@ 返回值: EN_RETURN_SUCC,成功; EN_RETURN_INVALID_CARD, EN_RETURN_BALANCE_NOT_ENOUGH, 失败;
*/
EN_RETURN_CODE DeductCard(unsigned int cardNo, EN_CARD_TYPE enCard, unsigned int deductPrice, unsigned int &balance)
{
Card *card = findAppointedCard(cardNo);
if (card == NULL) {
return EN_RETURN_INVALID_CARD;
}
EN_CARD_TYPE cardType;
//获取目前卡余额
GetCardInfo(cardNo, balance, cardType);
if (balance < deductPrice)
{
return EN_RETURN_BALANCE_NOT_ENOUGH;
}
balance = balance - deductPrice;
consume[4]+=deductPrice;
consume[enCard]+=deductPrice;
card->balance = balance;
if (enCard == EN_CARD_TYPE_SINGLE)
{
//注销
destroyAppointedCard(cardNo);
}
else if (balance < 20)
{
return EN_RETURN_BALANCE_TOO_LOW;
}

return EN_RETURN_SUCC;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
IT孤鹜
2014-04-29 · TA获得超过4198个赞
知道大有可为答主
回答量:3960
采纳率:71%
帮助的人:3699万
展开全部
在c中
int i;
for(i=0;i<300;i++)
intarray[i]=0;
更多追问追答
追问
我不是要赋值0,而是由确定的值。。。
追答
什么由确定的值
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式