永发信息网

c语言问题,again.

答案:4  悬赏:20  手机版
解决时间 2021-04-01 15:27
c语言问题,again.
最佳答案
int card[hand-1];这里card数组长度是hand-1 ,下面 当n=hand-1的时候card[n]越界

然后 srand也不是这么用的。 只需要srand一次,然后每次就 rand()得到随机数就可以了
全部回答
#include<stdio.h>
#include<stdlib.h>
#define hand 40
void readcards(int[],int);
int main(int argc,char **argv){
int card[hand -1];
readcards(card,hand);
return 0;
}
void readcards(int card[],int hand1){//你原来的hand与define hand 40 冲突
int n,seed;
for (n=0;n<hand1-1;n++){//hand1-1,不然数组越界card[hand-1]
seed=n;
srand(seed);
card[n]=1+rand()%12;
printf("%d,(n=%d)-\n ",card[n],n);
}
}
readcards函数中的int hand 和#define hand 40
重命名了,这样改
#include<stdio.h>
#include<stdlib.h>
#define hand 40
void readcards(int[],int);
int main(int argc,char **argv)
{
int card[hand-1];
readcards(card,hand);
return 0;
}
void readcards(int card[],int _hand)
{
int n,seed;
for (n=0;n<hand;n++)
{
seed=n+1;
srand(seed);
card[n]=1+rand()%12;
printf("%d, ",card[n]);
}
}
朋友,首先一点,常量请用大写,害我找了半天哪有hand
没仔细看,也不清楚你程序要干嘛,但是for循环里面肯定要指针越界
hand是40,card是39位的数组,下表最多到38,n=39的时候,是可以进for循环的,所以,运行到card[39]就错了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
九千年的蟠桃和人参果那个好
pentium(R) dual-core cpu 和Inter Core i3
天津西青中北镇北溪秀苑离北宁公园多远
外墙质感涂料几种常见的工艺有哪些?
莲花桥地铁站到角门西地铁站怎么走
普通流量计是标况流量还是工况流量
郎加一笔是什么字
jsp中cannot be resolved
epdm材料挤出和pvc挤出的机器是一样的吗?epd
含有柳的诗句。
冬天美芦庄园内有什么好玩的啊?
趵突泉古代什么人居住
聚开心团队包括了哪些店
如何处理男朋友一个重要亲戚跟自己的关系
搜狗官网收录需要多长时间,官网提交都几天了
推荐资讯
PHP Warning: PHP Startup: Invalid library
edius6.5和edius7哪个好
学生的情感需求有哪些
怎样算五金模具的等高螺栓
类似自始至终的词语
火象星座和什么象星座最配
塑料大棚有没有平顶的
大神求出处!!
按照仪轨念的地藏经,在家念的,也就是有护法
我被骗了7千多!你们怎么要回来的
西安百盛买的衣服标牌摘了 小票在 还能换号不
结婚以后女人会有什么变化
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?