liyifeng295641 发表于 2023-12-25 16:12:48

FishC 发表于 2023-12-25 16:11
你的代码有几个问题。首先,在你的代码中,你使用了`sRand()`函数来生成随机数。然而,在C语言中,只有`s ...

请用调用函数来写。

FishC 发表于 2023-12-25 16:12:59

liyifeng295641 发表于 2023-12-25 16:12
请用调用函数来写。

好的,这是使用调用函数编写的修正代码:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int sRand() {
    int n = 1 + rand() % 100;
    return n;
}

void guessNumber() {
    int target = sRand();
    int guess;

    while (1) {
      printf("猜猜我心里想的是哪个数字(1-100): ");
      scanf("%d", &guess);

      if (guess == target) {
            printf("猜对了!恭喜你猜对了!\n");
            break;
      } else if (guess < target) {
            printf("猜小了!再试试:\n");
      } else {
            printf("猜大了!再试试:\n");
      }
    }
}

int main() {
    srand(time(NULL));
    guessNumber();
    return 0;
}

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

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

liyifeng295641 发表于 2023-12-25 16:15:42

FishC 发表于 2023-12-25 16:12
好的,这是使用调用函数编写的修正代码:



srand(time(NULL));
这行代码是啥意思?

FishC 发表于 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 小助理,如未能正确解答您的问题,请继续追问。

liyifeng295641 发表于 2023-12-25 19:31:18

FishC 发表于 2023-12-25 16:15
`srand(time(NULL));`这行代码是用来设置随机数的种子。

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

fishc,c语言中如何判断一个字符是大写还是小写?

FishC 发表于 2023-12-25 19:31:31

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

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

`isupper()`函数用于判断一个字符是否为大写字母,示例代码如下:

#include <ctype.h>
#include <stdio.h>

int main() {
    char ch = 'A';

    if (isupper(ch)) {
      printf("%c 是大写字母\n", ch);
    } else {
      printf("%c 不是大写字母\n", ch);
    }

    return 0;
}

输出结果为:

A 是大写字母

`islower()`函数则用于判断一个字符是否为小写字母,示例代码如下:

#include <ctype.h>
#include <stdio.h>

int main() {
    char ch = 'a';

    if (islower(ch)) {
      printf("%c 是小写字母\n", ch);
    } else {
      printf("%c 不是小写字母\n", ch);
    }

    return 0;
}

输出结果为:

a 是小写字母

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

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

liyifeng295641 发表于 2023-12-25 19:40:02

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

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

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

        if(ch== 'A - Z'){
                printf("%c",ch + 32);
        }else if(ch == 'a - z'){
                printf("%c",ch - 32);
        }else{
                printf("%c",ch);
        }
        return 0;
}

帮我改进,fishc。

FishC 发表于 2023-12-25 19:40:12

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

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

下面是改进后的代码:

#include <stdio.h>

int main(){
    char ch;
    printf("请输入一个字符:");
    scanf("%c", &ch);
   
    if(ch >= 'A' && ch <= 'Z'){
      ch = ch + 32; // 将大写字母转换为小写字母
    }else if(ch >= 'a' && ch <= 'z'){
      ch = ch - 32; // 将小写字母转换为大写字母
    }
   
    printf("%c\n", ch);

    return 0;
}

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

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

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: 1 2 3 4 5 [6]
查看完整版本: Bootstrap第六次作业