鱼C论坛

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

[吹水] 写文章

[复制链接]
发表于 2024-1-9 08:57:19 | 显示全部楼层


好的,下面是使用C语言编写的求解1-2+3-4+...+99的值的代码:

  1. #include <stdio.h>

  2. int main() {
  3.     int result = 0;
  4.     int sign = 1;  // 用来表示正负号,初始为正号

  5.     for (int i = 1; i <= 99; i++) {
  6.         result += sign * i;
  7.         sign = -sign;  // 每次循环后改变正负号
  8.     }

  9.     printf("累加结果为:%d\n", result);
  10.    
  11.     return 0;
  12. }
复制代码


在这段代码中,我们使用了一个变量 `result` 来保存累加的结果,初始值为0。然后,我们使用一个 `sign` 变量来表示每一项的正负号,初始为正号。在循环中,我们依次将每个数乘以正负号并累加到 `result` 上,然后修改 `sign` 的值,使其在正负之间切换。最终输出计算得到的累加结果。

希望这段代码能够帮助你!如果还有其他问题,请随时提问。

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

使用道具 举报

 楼主| 发表于 2024-1-9 09:07:19 | 显示全部楼层
FishC 发表于 2024-1-9 08:57
好的,下面是使用C语言编写的求解1-2+3-4+...+99的值的代码:

已知有n个教师,编程实现如下功能
   (1) 定义教师的数据类型,包括:工号、姓名、年龄、家庭住址、工资
(2) 定义一个子函数实现n个教师的信息输入。
   (3) 定义一个子函数求总工资和平均工资,并用指针传回给主函数。
(4) 编写main()函数,调用上述子函数,实现教师信息的输入、计算总工资和平均工资,并打印输出。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-1-9 09:08:04 | 显示全部楼层
3459606395 发表于 2024-01-09 09:07
已知有n个教师,编程实现如下功能
   (1) 定义教师的 ...


好的,以下是根据你的要求编写的C语言代码:

  1. #include <stdio.h>
  2. #include <stdlib.h>

  3. typedef struct {
  4.     int id;
  5.     char name[50];
  6.     int age;
  7.     char address[100];
  8.     double salary;
  9. } Teacher;

  10. void inputTeacherInfo(Teacher* teachers, int n) {
  11.     for (int i = 0; i < n; i++) {
  12.         printf("请输入第%d个教师的信息:\n", i+1);
  13.         printf("工号:");
  14.         scanf("%d", &(teachers[i].id));
  15.         getchar(); // 消耗输入缓冲区中的回车符
  16.         printf("姓名:");
  17.         gets(teachers[i].name);
  18.         printf("年龄:");
  19.         scanf("%d", &(teachers[i].age));
  20.         getchar(); // 消耗输入缓冲区中的回车符
  21.         printf("家庭住址:");
  22.         gets(teachers[i].address);
  23.         printf("工资:");
  24.         scanf("%lf", &(teachers[i].salary));
  25.         getchar(); // 消耗输入缓冲区中的回车符
  26.         printf("\n");
  27.     }
  28. }

  29. void calculateTotalAndAverageSalary(Teacher* teachers, int n, double* total, double* average) {
  30.     *total = 0.0;
  31.     for (int i = 0; i < n; i++) {
  32.         *total += teachers[i].salary;
  33.     }
  34.     *average = *total / n;
  35. }

  36. int main() {
  37.     int n;
  38.     printf("请输入教师的数量:");
  39.     scanf("%d", &n);

  40.     Teacher* teachers = (Teacher*)malloc(sizeof(Teacher) * n);

  41.     inputTeacherInfo(teachers, n);

  42.     double totalSalary, averageSalary;
  43.     calculateTotalAndAverageSalary(teachers, n, &totalSalary, &averageSalary);

  44.     printf("教师们的总工资为:%.2lf\n", totalSalary);
  45.     printf("教师们的平均工资为:%.2lf\n", averageSalary);

  46.     free(teachers);

  47.     return 0;
  48. }
复制代码


编写这个程序的主要思路如下:
1. 首先定义了一个`Teacher`结构体,用来表示教师的信息,包括工号、姓名、年龄、家庭住址和工资。
2. 在`inputTeacherInfo`函数中,使用循环依次输入每个教师的信息,并存储到相应的结构体变量中。
3. 在`calculateTotalAndAverageSalary`函数中,使用循环遍历所有教师的工资,并累加到总工资变量中。最后计算平均工资并保存到指针变量中。
4. 在`main`函数中,首先读取教师的数量,并根据数量动态分配内存空间存储教师的信息。然后调用`inputTeacherInfo`函数输入教师的信息。
5. 再调用`calculateTotalAndAverageSalary`函数计算总工资和平均工资,并最后打印输出结果。
6. 最后释放动态分配的内存空间。

希望这个代码能够满足你的需求,如果有任何疑问,请随时提问!

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

使用道具 举报

 楼主| 发表于 2024-1-9 09:23:51 | 显示全部楼层
FishC 发表于 2024-1-9 09:08
好的,以下是根据你的要求编写的C语言代码:

#include<stdio.h>
struct teacher{
        int id;
        char name[50];
        int age;
        char address[100];
        float salary;
};
void input(struct teacher a[],int n);
{
        for(int i=0;i<n;i++)
        {
                printf("%d%s%d%s%f",a.id,a.name,a.age,a.address,a.salary);
        }
}
void calculate(Teacher* teachers, int n, float* total, float* average)
{
    *total = 0.0;
    for (int i = 0; i < n; i++)\
        {
        *total += teachers.salary;
    }
    *average = *total / n;
}
int main()
{
    int n;
    printf("请输入教师的数量:");
    scanf("%d", &n);
    struct teachers a[n];
    input(teachers, n);
    float totalSalary, averageSalary;
    calculate(teachers, n, &totalSalary, &averageSalary);
    printf("教师们的总工资为:%.2f\n", totalSalary);
    printf("教师们的平均工资为:%.2f\n", averageSalary);
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-1-9 09:24:08 | 显示全部楼层
3459606395 发表于 2024-01-09 09:23
#include
struct teacher{
        int id;
        char name;
...


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

typedef struct {
    int id;
    char name[20];
    int age;
    char address[50];
    float salary;
} Teacher;

void inputTeacherInfo(Teacher* teachers, int n) {
    for (int i = 0; i < n; i++) {
        printf("请输入第%d个教师的信息:\n", i+1);
        printf("工号:");
        scanf("%d", &(teachers.id));
        getchar(); // 消耗输入缓冲区中的回车符
        printf("姓名:");
        scanf("%s", teachers.name);
        printf("年龄:");
        scanf("%d", &(teachers.age));
        getchar(); // 消耗输入缓冲区中的回车符
        printf("家庭住址:");
        scanf("%s", teachers.address);
        printf("工资:");
        scanf("%f", &(teachers.salary));
        getchar(); // 消耗输入缓冲区中的回车符
        printf("\n");
    }
}

void calculateTotalAndAverageSalary(Teacher* teachers, int n, float* total, float* average) {
    *total = 0.0;
    for (int i = 0; i < n; i++) {
        *total += teachers.salary;
    }
    *average = *total / n;
}

int main() {
    int n;
    printf("请输入教师的数量:");
    scanf("%d", &n);
    Teacher* teachers = (Teacher*)malloc(sizeof(Teacher) * n);
    inputTeacherInfo(teachers, n);
    float totalSalary, averageSalary;
    calculateTotalAndAverageSalary(teachers, n, &totalSalary, &averageSalary);
    printf("教师们的总工资为:%.2f\n", totalSalary);
    printf("教师们的平均工资为:%.2f\n", averageSalary);
    free(teachers);
    return 0;
}

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

使用道具 举报

 楼主| 发表于 2024-1-9 09:26:13 From FishC Mobile | 显示全部楼层
3459606395 发表于 2024-1-9 09:23
#include
struct teacher{
        int id;

修改一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-1-9 09:26:46 | 显示全部楼层


非常抱歉,我在之前的回答中犯了一个错误。以下是修正后的代码:#include #include typedef struct {    int id;    char name[50];    int age;    char address[100];    float salary;} Teacher;void inputTeacherInfo(Teacher* teachers, int n) {    for (int i = 0; i < n; i++) {        printf("请输入第%d个教师的工号:", i+1);        scanf("%d", &(teachers.id));        printf("请输入第%d个教师的姓名:", i+1);        scanf("%s", teac

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

使用道具 举报

 楼主| 发表于 2024-1-9 09:29:53 | 显示全部楼层
FishC 发表于 2024-1-9 09:26
非常抱歉,我在之前的回答中犯了一个错误。以下是修正后的代码:#include #include typedef struct {   ...

#include<stdio.h>
struct teacher{
        int id;
        char name[50];
        int age;
        char address[100];
        float salary;
};
void input(struct teacher a[],int n)
{
        for(int i=0;i<n;i++)
        {
                printf("%d%s%d%s%f",a.id,a.name,a.age,a.address,a.salary);
        }
}
void calculate(Teacher* teachers, int n, float* total, float* average)
{
    *total = 0.0;
    for (int i = 0; i < n; i++)
        {
        *total += teachers.salary;
    }
    *average = *total / n;
}
int main()
{
    int n;
    printf("请输入教师的数量:");
    scanf("%d", &n);
    struct teachers a[n];
    input(teachers, n);
    float totalSalary, averageSalary;
    calculate(teachers, n, &totalSalary, &averageSalary);
    printf("教师们的总工资为:%.2f\n", totalSalary);
    printf("教师们的平均工资为:%.2f\n", averageSalary);
    return 0;
}修改一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-1-9 09:30:06 | 显示全部楼层
3459606395 发表于 2024-01-09 09:29
#include
struct teacher{
        int id;
        char name;
...


#include <stdio.h>

typedef struct {
    int id;
    char name[20];
    int age;
    char address[100];
    float salary;
} Teacher;

void inputTeacherInfo(Teacher* teachers, int n) {
    for (int i = 0; i < n; i++) {
        printf("请输入第%d个教师的工号:", i+1);
        scanf("%d", &(teachers.id));
        printf("请输入第%d个教师的姓名:", i+1);
        scanf("%s", teachers.name);
        printf("请输入第%d个教师的年龄:", i+1);
        scanf("%d", &(teachers.age));
        printf("请输入第%d个教师的地址:", i+1);
        scanf("%s", teachers.address);
        printf("请输入第%d个教师的薪水:", i+1);
        scanf("%f", &(teachers.salary));
    }
}

int main() {
    int n;
    printf("请输入教师的数量:");
    scanf("%d", &n);

    Teacher *teachers = malloc(n * sizeof(Teacher));

    inputTeacherInfo(teachers, n);

    printf("\n教师信息如下:\n");
    for (int i = 0; i < n; i++) {
        printf("教师%d:\n", i+1);
        printf("工号:%d\n", teachers.id);
        printf("姓名:%s\n", teachers.name);
        printf("年龄:%d\n", teachers.age);
        printf("地址:%s\n", teachers.address);
        printf("薪水:%.2f\n", teachers.salary);
    }

    free(teachers);
    return 0;
}

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

使用道具 举报

 楼主| 发表于 2024-1-11 13:14:06 | 显示全部楼层
FishC 发表于 2024-1-9 09:30
#include

typedef struct {

1.        编写程序,计算1/3-1/5+1/7-1/9......+1/51的值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-1-11 13:14:23 | 显示全部楼层
3459606395 发表于 2024-01-11 13:14
1.        编写程序,计算1/3-1/5+1/7-1/9......+1/51的值


#include <stdio.h>

int main() {
    int denominator = 3;
    double sum = 0;
    int sign = 1;

    while (denominator <= 51) {
        sum += sign * (1.0 / denominator);
        sign *= -1; // 切换符号:正数变负数,负数变正数
        denominator += 2; // 每次加2,即3, 5, 7...
    }

    printf("结果为:%f\n", sum);

    return 0;
}

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

使用道具 举报

 楼主| 发表于 2024-1-11 13:22:53 | 显示全部楼层
FishC 发表于 2024-1-11 13:14
#include

int main() {

2.        有8个整数存储在数组a中。
(1)编写一个子函数,计算所有元素的平均值ave,并返回给主函数。
(2)编写一个子函数,把数组a中大于平均值的元素挑选出来,保存在另一个数组b中带回给主函数,并返回数组b的个数。
(3)编写主函数,实现数组a的输入,调用子函数计算数组a的元素平均值,调用子函数实现数据挑选、并打印输出挑选出的元素。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-1-11 13:23:08 | 显示全部楼层
3459606395 发表于 2024-01-11 13:22
2.        有8个整数存储在数组a中。
(1)编写一个子函数, ...


#include <iostream>
using namespace std;

// 计算数组元素的平均值
double calculateAverage(int arr[], int size) {
    int sum = 0;
    for (int i = 0; i < size; i++) {
        sum += arr;
    }
    double average = static_cast<double>(sum) / size;
    return average;
}

// 挑选大于平均值的元素到新数组中
int selectElements(int arr[], int size, int b[], double average) {
    int count = 0;
    for (int i = 0; i < size; i++) {
        if (arr > average) {
            b[count] = arr;
            count++;
        }
    }
    return count;
}

int main() {
    const int SIZE = 8;
    int a[SIZE];
    int b[SIZE];

    // 输入数组a的元素
    cout << "请输入8个整数:" << endl;
    for (int i = 0; i < SIZE; i++) {
        cin >> a;
    }

    // 计算数组a的平均值
    double average = calculateAverage(a, SIZE);
    cout << "数组a的平均值为:" << average << endl;

    // 挑选出大于平均值的元素并打印输出
    int count = selectElements(a, SIZE, b, average);
    cout << "大于平均值的元素有:" << endl;
    for (int i = 0; i < count; i++) {
        cout << b << " ";
    }
    cout << endl;

    return 0;
}

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

使用道具 举报

 楼主| 发表于 2024-1-11 13:27:29 | 显示全部楼层
FishC 发表于 2024-1-11 13:23
#include
using namespace std;

c语言,简单点
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-1-11 13:27:43 | 显示全部楼层


好的,我来用简单的C语言给你写一下:

  1. #include <stdio.h>

  2. // 计算数组元素的平均值
  3. double calculateAverage(int arr[], int size) {
  4.     int sum = 0;
  5.     for (int i = 0; i < size; i++) {
  6.         sum += arr[i];
  7.     }
  8.     double average = (double)sum / size;
  9.     return average;
  10. }

  11. // 挑选大于平均值的元素到新数组中
  12. int selectElements(int arr[], int size, int b[], double average) {
  13.     int count = 0;
  14.     for (int i = 0; i < size; i++) {
  15.         if (arr[i] > average) {
  16.             b[count] = arr[i];
  17.             count++;
  18.         }
  19.     }
  20.     return count;
  21. }

  22. int main() {
  23.     const int SIZE = 8;
  24.     int a[SIZE];
  25.     int b[SIZE];

  26.     // 输入数组a的元素
  27.     printf("请输入8个整数:\n");
  28.     for (int i = 0; i < SIZE; i++) {
  29.         scanf("%d", &a[i]);
  30.     }

  31.     // 计算数组a的平均值
  32.     double average = calculateAverage(a, SIZE);
  33.     printf("平均值为:%.2f\n", average);

  34.     // 挑选大于平均值的元素并输出
  35.     int selectedCount = selectElements(a, SIZE, b, average);
  36.     printf("挑选出的元素为:\n");
  37.     for (int i = 0; i < selectedCount; i++) {
  38.         printf("%d ", b[i]);
  39.     }
  40.     printf("\n");

  41.     return 0;
  42. }
复制代码


这段代码实现了你的需求:首先输入8个整数存储在数组a中,然后计算数组a的平均值。接着挑选出大于平均值的元素,并保存在数组b中,最后输出挑选出的元素。

希望能够帮到你!如果还有其他问题,请随时向我提问。

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

使用道具 举报

 楼主| 发表于 2024-1-11 13:45:57 | 显示全部楼层
FishC 发表于 2024-1-11 13:27
好的,我来用简单的C语言给你写一下:

#include <stdio.h>
float calculate(int a[], int n)
{
    float sum = 0;
    for (int i = 0; i < n; i++)
        {
        sum += a;
    }
    float average = sum / n;
    return average;
}
int select(int a[], int n, int b[], float average)
{
    int count = 0;
    for (int i = 0; i<n; i++)
        {
        if (a > average)
                {
            b[count] = a;
            count++;
        }
    }
    return count;
}
int main()
{
    int a[8];
    int b[8];
    printf("请输入8个整数:\n");
    for (int i = 0; i < 8; i++)
        {
        scanf("%d", &a);
    }
    float average = (a, 8);
    printf("平均值为:%.2f\n", average);
    int selectedCount = select(a, 8, b, average);
    printf("挑选出的元素为:\n");
    for (int i = 0; i < selectedCount; i++)
        {
        printf("%d ", b);
    }
    printf("\n");
    return 0;
}修改一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-1-11 13:46:11 | 显示全部楼层
3459606395 发表于 2024-01-11 13:45
#include
float calculate(int a, int n)
{
    f ...


#include <stdio.h>

float calculateAverage(int arr[], int size) {
    int sum = 0;
    for (int i = 0; i < size; i++) {
        sum += arr;
    }
    float average = (float)sum / size;
    return average;
}

int selectElements(int arr[], int size, int b[], float average) {
    int count = 0;
    for (int i = 0; i < size; i++) {
        if (arr > average) {
            b[count] = arr;
            count++;
        }
    }
    return count;
}

int main() {
    const int SIZE = 8;
    int array[SIZE];
    int selectedArray[SIZE];
   
    printf("请输入8个整数:\n");
    for (int i = 0; i < SIZE; i++) {
        scanf("%d", &array);
    }
   
    float average = calculateAverage(array, SIZE);
    printf("平均值为:%.2f\n", average);
   
    int selectedCount = selectElements(array, SIZE, selectedArray, average);
    printf("挑选出的元素为:\n");
    for (int i = 0; i < selectedCount; i++) {
        printf("%d ", selectedArray);
    }
    printf("\n");
   
    return 0;
}

这段代码使用了函数来封装计算平均值和挑选元素的过程。首先,我们定义了`calculateAverage`函数来计算数组的平均值,然后我们定义了`selectElements`函数来挑选大于平均值的元素并保存在另一个数组中。

在`main`函数中,我们需要输入8个整数,并将它们存储在数组`array`中。然后,我们调用`calculateAverage`函数来计算平均值,并输出结果。接下来,我们调用`selectElements`函数来挑选元素,并将挑选的元素存储在数组`selectedArray`中。最后,我们输出挑选出的元素。

希望这次修改的代码可以帮到你!如果还有其他问题,请随时提问。

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

使用道具 举报

 楼主| 发表于 2024-1-11 14:00:26 | 显示全部楼层
FishC 发表于 2024-1-11 13:46
#include

float calculateAverage(int arr[], int size) {

设有n个学生,编程实现如下功能:
(1)定义学生的结构体数据类型,包括:学号、姓名、家庭住址、成绩。
(2)编写一个子函数,用于从键盘输入学生信息,保存在结构体数组中。
(3)编写一个子函数,按照成绩从小到大排序。
(4)编写一个子函数,输出所有学生的信息。
(5)编写一个子函数,分别统计成绩优秀(>=90)和成绩不及格(<60)的学生人数,并带回给主函数。
(6)编写主函数,分别调用上述子函数,实现学生信息的输入、排序、输出、统计功能,并打印输出成绩优秀的人数和成绩不及格的人数。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-1-11 14:00:40 | 显示全部楼层
3459606395 发表于 2024-01-11 14:00
设有n个学生,编程实现如下功能:
(1)定义学生的结 ...


#include

// 定义学生结构体
struct Student {
    int id;
    char name[20];
    char address[100];
    float score;
};

// 从键盘输入学生信息
void inputStudents(struct Student students[], int n) {
    printf("请输入%d个学生的信息:\n", n);
    for (int i = 0; i < n; i++) {
        printf("请输入第%d个学生的学号:", i+1);
        scanf("%d", &students.id);
        printf("请输入第%d个学生的姓名:", i+1);
        scanf("%s", students.name);
        printf("请输入第%d个学生的家庭住址:", i+1);
        scanf("%s", students.address);
        printf("请输入第%d个学生的成绩:", i+1);
        scanf("%f", &students.score);
    }
}

// 按照成绩从小到大排序
void sortStudents(struct Student students[], int n) {
    struct Student temp;
    for (int i = 0; i < n-1; i++) {
        for (int j = 0; j < n-i-1; j++) {
            if (students[j].score > students[j+1].score) {
                temp = students[j];
                students[j] = students[j+1];
                students[j+1] = temp;
            }
        }
    }
}

// 输出所有学生的信息
void outputStudents(struct Student students[], int n) {
    printf("所有学生的信息如下:\n");
    for (int i = 0; i < n; i++) {
        printf("学号:%d, 姓名:%s, 家庭住址:%s, 成绩:%.2f\n",
               students.id, students.name, students.address, students.score);
    }
}

// 统计成绩优秀和不及格的学生人数
void countScore(struct Student students[], int n) {
    int excellentCount = 0;
    int failCount = 0;
   
    for (int i = 0; i < n; i++) {
        if (students.score >= 90) {
            excellentCount++;
        } else if (students.score < 60) {
            failCount++;
        }
    }
   
    printf("成绩优秀(>=90)的学生人数:%d\n", excellentCount);
    printf("成绩不及格的学生人数:%d\n", failCount);
}

int main() {
    int n;
    printf("请输入学生人数:");
    scanf("%d", &n);
   
    struct Student students[n];
   
    inputStudents(students, n);
    sortStudents(students, n);
    outputStudents(students, n);
    countScore(students, n);
   
    return 0;
}

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

使用道具 举报

 楼主| 发表于 2024-1-11 14:10:58 | 显示全部楼层
FishC 发表于 2024-1-11 14:00
#include

// 定义学生结构体

#include<stdio.h>
struct student
{
    int id;
    char name[20];
    char address[100];
    float score;
};
void input(struct student students[], int n)
{
    printf("请输入%d个学生的信息:\n", n);
    for (int i = 0; i < n; i++)
        {
        printf("请输入第%d个学生的学号:", i+1);
        scanf("%d", &students.id);
        printf("请输入第%d个学生的姓名:", i+1);
        scanf("%s", students.name);
        printf("请输入第%d个学生的家庭住址:", i+1);
        scanf("%s", students.address);
        printf("请输入第%d个学生的成绩:", i+1);
        scanf("%f", &students.score);
    }
}
void sort(struct student students[], int n)
{
    struct student temp;
    for (int i = 0; i < n-1; i++)
        {
        for (int j = 0; j < n-i-1; j++)
                {
            if (students[j].score > students[j+1].score)
                        {
                temp = students[j];
                students[j] = students[j+1];
                students[j+1] = temp;
            }
        }
    }
}

void output(struct student students[], int n)
{
    printf("所有学生的信息如下:\n");
    for (int i = 0; i < n; i++)
        {
        printf("学号:%d, 姓名:%s, 家庭住址:%s, 成绩:%.2f\n",
               students.id, students.name, students.address, students.score);
    }
}
void count(struct student students[], int n)
{
    int excellentcount = 0;
    int failcount = 0;
   
    for (int i = 0; i < n; i++)
        {
        if (students.score >= 90)
                {
            excellentCount++;
        }
                else if(students.score < 60)
                {
            failCount++;
        }
    }
    printf("成绩优秀(>=90)的学生人数:%d\n", excellentcount);
    printf("成绩不及格的学生人数:%d\n", failcount);
}
int main()
{
    int n;
    printf("请输入学生人数:");
    scanf("%d", &n);
    struct student students[n];
    input(students, n);
    sort(students, n);
    output(students, n);
    count(students, n);
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-29 02:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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