永发信息网

C语言题目——帮忙解释下

答案:3  悬赏:30  手机版
解决时间 2021-05-07 23:08

#include <stdio.h>
struct card{
char *face;
char *suit;
};
void filldeck(struct card *wdeck, char *wface[],char *wsuit[])
{ int i;
for (i = 0; i < 4; i++){
wdeck[i].face = wface[i%2];
wdeck[i].suit = wsuit[i/2];
}
}
void deal(struct card *wdeck)
{ int i;
for (i = 0; i < 4; i++)
printf("(%2s of %-6s)\n", wdeck[i].face, wdeck[i].suit);
}

void main()
{ struct card deck[4];
char *face[]={"K","Q"};
char *suit[]={"Heart","Club"};

filldeck(deck,face,suit);
deal(deck);
}
(21) 程序运行时,第1行输出 (21) 。
A、(K of Heart) B、(Q of Heart)
C、(K of Club) D、(Q of Club)
(22) 程序运行时,第2行输出 (22) 。
A、(K of Heart) B、(Q of Heart)
C、(K of Club) D、(Q of Club)
(23) 程序运行时,第3行输出 (23) 。
A、(K of Heart) B、(Q of Heart)
C、(K of Club) D、(Q of Club)
(24) 程序运行时,第3行输出 (24) 。
A、(K of Heart) B、(Q of Heart)
C、(K of Club) D、(Q of Club)
ABCD
帮忙详细解释下

最佳答案

#include <stdio.h>
struct card
{
char *face;
char *suit;
};
void filldeck(struct card *wdeck, char *wface[],char *wsuit[])//用指针来改变值
{
int i;
for (i = 0; i < 4; i++)
{
wdeck[i].face = wface[i%2];//第一次循环...依次 等于0 1 0 1 第一个循环face[0]
wdeck[i].suit = wsuit[i/2];//第一次循环...依次等于0 0 1 1 第一个循环suit[0]
}
}
void deal(struct card *wdeck)
{
int i;
for (i = 0; i < 4; i++)
printf("(%2s of %-6s)\n", wdeck[i].face, wdeck[i].suit);
}


void main()
{
struct card deck[4];
char *face[]={"K","Q"};
char *suit[]={"Heart","Club"};


filldeck(deck,face,suit);//调用 传数组首地址
deal(deck);//调用deal函数输出
}


全部回答

#include <stdio.h> struct card { char *face; char *suit; }; void filldeck(struct card *wdeck, char *wface[],char *wsuit[])//用指针来改变值 { int i; for (i = 0; i < 4; i++) { wdeck[i].face = wface[i%2];//第一次循环wdeck[0].face = wface[0],2:wdeck[1].face = wface[1]

3:wdeck[2].face = wface[0] 4:2:wdeck[3].face = wface[1]

wdeck[i].suit = wsuit[i/2];//第一次循环wdeck[0].suit = wsuit[0] 2:wdeck[1].suit = wsuit[0]

3:wdeck[2].suit = wsuit[1] 4:wdeck[3].suit = wsuit[1]

} } void deal(struct card *wdeck) { int i; for (i = 0; i < 4; i++) printf("(%2s of %-6s)\n", wdeck[i].face, wdeck[i].suit);//1输出K of Heart 2:Q of Heart

3:K of Club 4:Q of Club }

void main() { struct card deck[4]; char *face[]={"K","Q"}; char *suit[]={"Heart","Club"};

filldeck(deck,face,suit);//调用 传数组首地址 deal(deck);//调用deal函数输出

建议你单步跟踪调试一下 其实就是简单的计算 用比画一画就知道了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
结婚了还可以交女朋友吗?
我是农历1991.09.25出生的,请问星座是?
安装后完不了
用手机怎充Q币,VIP不用电脑?
黄金1级如何在手机上免费换QQ秀?
表达爱情关于玉的诗句,和手镯相关的古代诗词
皓雅齿科在哪里啊,我有事要去这个地方
金泰克游戏版内存条怎么样?
富侨保健(贵宾店)在什么地方啊,我要过去处理
CF昨天不是搞活动送东西,多会给?
杨冥的详细资料
为什么我电脑输入不了声音阿
为什么那么多骗子?这个世界充满了谎言?
红盖头国际时尚婚纱摄影在哪里啊,我有事要去
畢業季有关唯美句子,关于向日葵的唯美句子
推荐资讯
怎么维护自己的合法权利?
QQ2009sp6出新图标了吗?
《逐鹿仙神》
N97mini可以划屏接电话的软件
胎盘老化对小孩有什么影响
Dnf 重庆二区 格洛克-G17 能卖多少钱
我的电脑声卡是80821FB ICH6 ’AC 97的.下了
南京炮团在哪里
房屋南北不通透好吗?
我是1993年6月19日,是什么座啊
什么是风衣面料,风衣是什么材质 50分
香肠是什么,香肠的皮是用什么肠衣
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?