判断数组函数 c语言程序设计,《C语言程序设计》第七章随堂练习:数组-函数...

题目:

从外界获取宿舍里面各个成员的名字并且存储成数组,然后从外界获取星期几来输出今天谁值日,本题目至少使用一个以上的函数(不包括main函数),并且函数具备参数。

解答:

1、姓名存储

此前我们写过了存储当个用户姓名的方式:

char userName[50]="刘日辉";

那么存储多个人的姓名,并且采用数组的方式(当然,先这种存储方式会造成很多一维数组的元素是空字符,有点浪费内存,后续我们会讲到指针数组的方式就高效多),按学校的宿舍是6人间来算,那么就是2维数组:

char userNames[6][50]={"张三","李四","王五","黎明","刘德华","马云"}

当然,题目要求是从外界获取的,就需要使用scanf,单个获取是:

scanf("%s",userNames[i]);//注意这里只是一个中括号,代表的是二维的维度,也就是一行。不需要写代表列的中括号

如果要输出所有的,则可以为:

for(i=0;i<6;i++)

{

printf("%s\n",userNames[i]);//注意只需要写代表行的中括号就可以了

}

2、谁值日

这个只需要进行判断就可以了,如果用户输入的是整数1-7,则为:

int weekday;

scanf("%d",&weekday);

switch(weekday)

{

case 1:printf("今天%s值日!",userNames[weekday-1]);break;

case 2:printf("今天%s值日!",userNames[weekday-1]);break;

case 3:printf("今天%s值日!",userNames[weekday-1]);break;

case 4:printf("今天%s值日!",userNames[weekday-1]);break;

case 5:printf("今天%s值日!",userNames[weekday-1]);break;

case 6:printf("今天%s值日!",userNames[weekday-1]);break;

default:printf("今天没人值日或您输入的数字错误!");

}

3、函数

题目要求至少使用一个以上的函数,并且函数包含参数。

要重构代码,提取出函数,我们首先看下:

(1)程序里面有重复的代码,重复的代码可以提炼成一个函数,比如在今天谁值日的printf()代码都是重复的。

(2)程序里面可独立的功能,可以将功能独立成一个函数,比如判断今天谁值日的代码。

4、代码

4.1没有独立的函数

fcd616ef15cd98ff246fb34630665646.png

4.2需要独立函数

把之前的分支判断这个功能独立成一个函数,并且把打印谁值日这个重复的语句独立成一个函数。

b229a9d7294c50bd82fd5028ade7727d.png

注意上面这里一定要把char userNames[][]放main函数外面,因为任何变量都有一个作用域(就是起作用的范围),作用域一般是所在的大括号,如果userNames写在main函数里面则其他函数是无法使用的,除非也通过参数传递过去。否则会报错提示未定义,如下:

e3040cbd43f80dfdf9cdc55e0c929fe8.png

5、最终效果

6c1dd8dabcfe6bcbfc385441e1f0bcab.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值