鱼C论坛

 找回密码
 立即注册
楼主: liyifeng295641

[已解决]Bootstrap第六次作业

[复制链接]
 楼主| 发表于 2023-12-25 16:12:48 | 显示全部楼层
FishC 发表于 2023-12-25 16:11
你的代码有几个问题。首先,在你的代码中,你使用了`sRand()`函数来生成随机数。然而,在C语言中,只有`s ...

请用调用函数来写。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-12-25 16:12:59 | 显示全部楼层
liyifeng295641 发表于 2023-12-25 16:12
请用调用函数来写。

好的,这是使用调用函数编写的修正代码:
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. int sRand() {
  5.     int n = 1 + rand() % 100;
  6.     return n;
  7. }
  8. void guessNumber() {
  9.     int target = sRand();
  10.     int guess;
  11.     while (1) {
  12.         printf("猜猜我心里想的是哪个数字(1-100): ");
  13.         scanf("%d", &guess);
  14.         if (guess == target) {
  15.             printf("猜对了!恭喜你猜对了!\n");
  16.             break;
  17.         } else if (guess < target) {
  18.             printf("猜小了!再试试:\n");
  19.         } else {
  20.             printf("猜大了!再试试:\n");
  21.         }
  22.     }
  23. }
  24. int main() {
  25.     srand(time(NULL));
  26.     guessNumber();
  27.     return 0;
  28. }
复制代码

在这段代码中,我将生成随机数的逻辑封装进`sRand()`函数中,然后在`guessNumber()`函数中调用`sRand()`函数来获得目标数。这样做可以提高代码的可读性和可维护性。然后,我在`main()`函数中调用`guessNumber()`函数来进行猜数字游戏。希望这次能满足你的要求!如果还有其他问题,请随时向我提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-12-25 16:15:42 | 显示全部楼层
FishC 发表于 2023-12-25 16:12
好的,这是使用调用函数编写的修正代码:

srand(time(NULL));
这行代码是啥意思?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-12-25 16:15:50 | 显示全部楼层
liyifeng295641 发表于 2023-12-25 16:15
srand(time(NULL));
这行代码是啥意思?

`srand(time(NULL));`这行代码是用来设置随机数的种子。

在C语言中,`srand()`函数用于设置随机数种子。调用`srand()`函数时需要传入一个整数参数作为种子值。通过不同的种子值,可以产生不同的随机数序列。

`time(NULL)`用于获取当前时间的秒数,它返回的是一个long类型的整数值。通过将当前时间的秒数作为种子值传给`srand()`函数,可以确保每次运行程序时都会生成一个不同的随机数序列。

这样做的目的是使得每次猜数字游戏开始时都有一个随机的目标数,增加游戏的趣味和挑战性。如果不使用`srand(time(NULL))`来设置种子值,每次程序运行时生成的随机数序列都是相同的,这就失去了随机性。

希望解答了你的疑问!如果还有其他问题,请随时向我提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-12-25 19:31:18 | 显示全部楼层
FishC 发表于 2023-12-25 16:15
`srand(time(NULL));`这行代码是用来设置随机数的种子。

在C语言中,`srand()`函数用于设置随机数种子。 ...

fishc,c语言中如何判断一个字符是大写还是小写?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-12-25 19:31:31 | 显示全部楼层
liyifeng295641 发表于 2023-12-25 19:31
fishc,c语言中如何判断一个字符是大写还是小写?

在C语言中,可以使用标准库函数`isupper()`和`islower()`来判断一个字符是大写还是小写。这两个函数都接受一个字符作为参数,并返回一个非零值(真)或零值(假)。

`isupper()`函数用于判断一个字符是否为大写字母,示例代码如下:
  1. #include <ctype.h>
  2. #include <stdio.h>
  3. int main() {
  4.     char ch = 'A';
  5.     if (isupper(ch)) {
  6.         printf("%c 是大写字母\n", ch);
  7.     } else {
  8.         printf("%c 不是大写字母\n", ch);
  9.     }
  10.     return 0;
  11. }
复制代码

输出结果为:
  1. A 是大写字母
复制代码

`islower()`函数则用于判断一个字符是否为小写字母,示例代码如下:
  1. #include <ctype.h>
  2. #include <stdio.h>
  3. int main() {
  4.     char ch = 'a';
  5.     if (islower(ch)) {
  6.         printf("%c 是小写字母\n", ch);
  7.     } else {
  8.         printf("%c 不是小写字母\n", ch);
  9.     }
  10.     return 0;
  11. }
复制代码

输出结果为:
  1. a 是小写字母
复制代码

需要注意的是,`isupper()`和`islower()`函数均需要包含`<ctype.h>`头文件,另外,它们只适用于单个字符的判断。希望能帮助到你!如果还有其他问题,请随时向我提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-12-25 19:40:02 | 显示全部楼层
FishC 发表于 2023-12-25 19:31
在C语言中,可以使用标准库函数`isupper()`和`islower()`来判断一个字符是大写还是小写。这两个函数都接 ...

题目:2. 要求用户输入一个字符,如果是大写字母,将其转换为小写;如果是小写字母,将其转换为大写;其他字符不做处理,并输出结果。
我写的代码:
  1. #include <stdio.h>
  2. int main(){

  3.         char ch;
  4.         printf("请输入一个字符:");
  5.         scanf("%c",&ch);

  6.         if(ch  == 'A - Z'  ){
  7.                 printf("%c",ch + 32);
  8.         }else if(ch == 'a - z'){
  9.                 printf("%c",ch - 32);
  10.         }else{
  11.                 printf("%c",ch);
  12.         }
  13.         return 0;
  14. }
复制代码

帮我改进,fishc。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-12-25 19:40:12 | 显示全部楼层
liyifeng295641 发表于 2023-12-25 19:40
题目:2. 要求用户输入一个字符,如果是大写字母,将 ...

您的代码中存在一些问题。首先,条件判断语句`if(ch == 'A - Z')`和`else if(ch == 'a - z')`不会按照您的意图进行字符范围的判断。其次,转换大小写的逻辑也存在错误。

下面是改进后的代码:
  1. #include <stdio.h>
  2. int main(){
  3.     char ch;
  4.     printf("请输入一个字符:");
  5.     scanf("%c", &ch);
  6.    
  7.     if(ch >= 'A' && ch <= 'Z'){
  8.         ch = ch + 32; // 将大写字母转换为小写字母
  9.     }else if(ch >= 'a' && ch <= 'z'){
  10.         ch = ch - 32; // 将小写字母转换为大写字母
  11.     }
  12.    
  13.     printf("%c\n", ch);
  14.     return 0;
  15. }
复制代码

改进后的代码使用了ASCII码的范围来判断字符是否为大写字母或小写字母。如果是大写字母,则将其转换为小写字母;如果是小写字母,则将其转换为大写字母;其他字符不做处理。

希望对你有所帮助!如果还有其他问题,请随时向我提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-4 21:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表