liyifeng295641 发表于 2023-12-27 17:08:09

C语言编程题01

本帖最后由 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) =

由用户输入 n 和 x,最终输出计算得到的值。

FishC 发表于 2023-12-27 17:08:10

1. 统计单词个数的实现思路是:定义一个计数变量count,初始化为0。遍历输入的字符数组,如果当前字符不为空格且其前一个字符为空格或者为数组开始位置,则说明是一个新的单词的开始,将计数变量count加一。最后得到单词个数。

#include <stdio.h>

int countWords(char *str) {
    int count = 0;
    int i = 0;
   
    while (str != '\0') {
      if ((i == 0 || str == ' ') && str != ' ') {
            count++;
      }
      i++;
    }
   
    return count;
}

int main() {
    char str;
    printf("请输入一行字符:");
    gets(str);
   
    int count = countWords(str);
    printf("单词个数为:%d\n", count);
   
    return 0;
}

2. 求最小元素及其下标的实现思路是:定义两个变量min和pos,分别用来记录当前最小元素的值和下标。遍历数组,比较每个元素与min的大小,如果找到更小的元素,则更新min和pos。最后得到最小元素和下标。

#include <stdio.h>

int main() {
    int a[] = {1, 4, 2, 7, 3, 12, 5, 34, 5, 9};
    int length = sizeof(a) / sizeof(int);
   
    int min = a;
    int pos = 0;
    for (int i = 1; i < length; i++) {
      if (a < min) {
            min = a;
            pos = i;
      }
    }
   
    printf("最小元素为:%d, 下标为:%d\n", min, pos);
   
    return 0;
}

3. 计算函数值的实现思路是:使用循环结构计算每一项的值,然后累加求和。根据函数的定义,使用一个循环从1到n进行遍历,计算每一项的值,并累加求和。

#include <stdio.h>

double sum(int n, double x) {
    double result = 0.0;
   
    for (int i = 1; i <= n; i++) {
      double term = 1.0;
      for (int j = 1; j <= i; j++) {
            term *= x;
      }
      result += term;
    }
   
    return result;
}

int main() {
    int n;
    double x;
   
    printf("请输入 n 和 x:");
    scanf("%d %lf", &n, &x);
   
    double value = sum(n, x);
   
    printf("计算结果为:%lf\n", value);
   
    return 0;
}

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: C语言编程题01