鱼C论坛

 找回密码
 立即注册
查看: 896|回复: 1

[已解决]C语言编程题01

[复制链接]
发表于 2023-12-27 17:08:09 | 显示全部楼层 |阅读模式
5鱼币
本帖最后由 liyifeng295641 于 2024-1-3 15:45 编辑

1. 输入一行字符,单词之间用一个空格分隔,统计其中有多少个单词。

2. 求一维数组 a 中的最小元素及其下标。
例如,当一维数组 a 中的元素为:1,4,2,7,3,12,5,34,5,9,程序的输出应为:The min is: 1,posis: 0 。数组 a 可直接在代码中赋值。

3. 写一个程序计算下列函数的值:
Sum(n, x) = Screenshot 2023-12-27 at 17.07.13.png

由用户输入 n 和 x,最终输出计算得到的值。
最佳答案
2023-12-27 17:08:10
1. 统计单词个数的实现思路是:定义一个计数变量count,初始化为0。遍历输入的字符数组,如果当前字符不为空格且其前一个字符为空格或者为数组开始位置,则说明是一个新的单词的开始,将计数变量count加一。最后得到单词个数。
  1. #include <stdio.h>
  2. int countWords(char *str) {
  3.     int count = 0;
  4.     int i = 0;
  5.    
  6.     while (str[i] != '\0') {
  7.         if ((i == 0 || str[i-1] == ' ') && str[i] != ' ') {
  8.             count++;
  9.         }
  10.         i++;
  11.     }
  12.    
  13.     return count;
  14. }
  15. int main() {
  16.     char str[100];
  17.     printf("请输入一行字符:");
  18.     gets(str);
  19.    
  20.     int count = countWords(str);
  21.     printf("单词个数为:%d\n", count);
  22.    
  23.     return 0;
  24. }
复制代码

2. 求最小元素及其下标的实现思路是:定义两个变量min和pos,分别用来记录当前最小元素的值和下标。遍历数组,比较每个元素与min的大小,如果找到更小的元素,则更新min和pos。最后得到最小元素和下标。
  1. #include <stdio.h>
  2. int main() {
  3.     int a[] = {1, 4, 2, 7, 3, 12, 5, 34, 5, 9};
  4.     int length = sizeof(a) / sizeof(int);
  5.    
  6.     int min = a[0];
  7.     int pos = 0;
  8.     for (int i = 1; i < length; i++) {
  9.         if (a[i] < min) {
  10.             min = a[i];
  11.             pos = i;
  12.         }
  13.     }
  14.    
  15.     printf("最小元素为:%d, 下标为:%d\n", min, pos);
  16.    
  17.     return 0;
  18. }
复制代码

3. 计算函数值的实现思路是:使用循环结构计算每一项的值,然后累加求和。根据函数的定义,使用一个循环从1到n进行遍历,计算每一项的值,并累加求和。
  1. #include <stdio.h>
  2. double sum(int n, double x) {
  3.     double result = 0.0;
  4.    
  5.     for (int i = 1; i <= n; i++) {
  6.         double term = 1.0;
  7.         for (int j = 1; j <= i; j++) {
  8.             term *= x;
  9.         }
  10.         result += term;
  11.     }
  12.    
  13.     return result;
  14. }
  15. int main() {
  16.     int n;
  17.     double x;
  18.    
  19.     printf("请输入 n 和 x:");
  20.     scanf("%d %lf", &n, &x);
  21.    
  22.     double value = sum(n, x);
  23.    
  24.     printf("计算结果为:%lf\n", value);
  25.    
  26.     return 0;
  27. }
复制代码


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

最佳答案

查看完整内容

1. 统计单词个数的实现思路是:定义一个计数变量count,初始化为0。遍历输入的字符数组,如果当前字符不为空格且其前一个字符为空格或者为数组开始位置,则说明是一个新的单词的开始,将计数变量count加一。最后得到单词个数。 2. 求最小元素及其下标的实现思路是:定义两个变量min和pos,分别用来记录当前最小元素的值和下标。遍历数组,比较每个元素与min的大小,如果找到更小的元素,则更新min和pos。最后得到最小元素和下标 ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-12-27 17:08:10 | 显示全部楼层    本楼为最佳答案   
1. 统计单词个数的实现思路是:定义一个计数变量count,初始化为0。遍历输入的字符数组,如果当前字符不为空格且其前一个字符为空格或者为数组开始位置,则说明是一个新的单词的开始,将计数变量count加一。最后得到单词个数。
  1. #include <stdio.h>
  2. int countWords(char *str) {
  3.     int count = 0;
  4.     int i = 0;
  5.    
  6.     while (str[i] != '\0') {
  7.         if ((i == 0 || str[i-1] == ' ') && str[i] != ' ') {
  8.             count++;
  9.         }
  10.         i++;
  11.     }
  12.    
  13.     return count;
  14. }
  15. int main() {
  16.     char str[100];
  17.     printf("请输入一行字符:");
  18.     gets(str);
  19.    
  20.     int count = countWords(str);
  21.     printf("单词个数为:%d\n", count);
  22.    
  23.     return 0;
  24. }
复制代码

2. 求最小元素及其下标的实现思路是:定义两个变量min和pos,分别用来记录当前最小元素的值和下标。遍历数组,比较每个元素与min的大小,如果找到更小的元素,则更新min和pos。最后得到最小元素和下标。
  1. #include <stdio.h>
  2. int main() {
  3.     int a[] = {1, 4, 2, 7, 3, 12, 5, 34, 5, 9};
  4.     int length = sizeof(a) / sizeof(int);
  5.    
  6.     int min = a[0];
  7.     int pos = 0;
  8.     for (int i = 1; i < length; i++) {
  9.         if (a[i] < min) {
  10.             min = a[i];
  11.             pos = i;
  12.         }
  13.     }
  14.    
  15.     printf("最小元素为:%d, 下标为:%d\n", min, pos);
  16.    
  17.     return 0;
  18. }
复制代码

3. 计算函数值的实现思路是:使用循环结构计算每一项的值,然后累加求和。根据函数的定义,使用一个循环从1到n进行遍历,计算每一项的值,并累加求和。
  1. #include <stdio.h>
  2. double sum(int n, double x) {
  3.     double result = 0.0;
  4.    
  5.     for (int i = 1; i <= n; i++) {
  6.         double term = 1.0;
  7.         for (int j = 1; j <= i; j++) {
  8.             term *= x;
  9.         }
  10.         result += term;
  11.     }
  12.    
  13.     return result;
  14. }
  15. int main() {
  16.     int n;
  17.     double x;
  18.    
  19.     printf("请输入 n 和 x:");
  20.     scanf("%d %lf", &n, &x);
  21.    
  22.     double value = sum(n, x);
  23.    
  24.     printf("计算结果为:%lf\n", value);
  25.    
  26.     return 0;
  27. }
复制代码


以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-28 05:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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