首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >函数在c中使用结构。

函数在c中使用结构。
EN

Stack Overflow用户
提问于 2020-11-27 10:06:17
回答 1查看 37关注 0票数 0

我必须用c#编写一个函数,它使用的结构希望返回多个学生列表的所有最小值之间的平均值,例如,我们有两个列表:

代码语言:javascript
复制
student_0 has :(19,20,18,14);
student_1 has :(15,30,29,19);

我必须从s0中选出最小票数,并将第一个值设为所有最小值之和,并做平均值:(举个例子) 14+15 /2(total_min_values的计数器);

我的代码是:

代码语言:javascript
复制
struct studente{
    unsigned int *voti;
    unsigned int voti_size;
};

float mean_of_min(struct studente *lst, int lst_size) {
    int minimo = lst->voti[0];
    
    float somma = 0;
    float media = 0;
    int  conta = 0;
    
    for (int i = 0; i < lst_size; i++) {
        for (int j = 1;j< lst->voti_size ; j++){
            if (minimo <= lst[i].voti[j] ){
                somma+=minimo;
                conta++;
            }
            if (minimo > lst[i].voti[j]){
                minimo = lst->voti[j];
                somma+=minimo;
                conta++;
            }
            media= somma / conta;
        }
    }
    
    return media;
}

这个函数可以工作,但是不能正常工作,您知道如何修复或改进我的功能吗?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-27 10:23:40

首先,当您提交一个问题时,请缩进您的代码,这样其他人就更容易理解您的代码了。

然后,下面的代码在您的expext中无法工作

代码语言:javascript
复制
for (int i = 0; i < lst_size; i++) {
    for (int j = 1;j< lst->voti_size ; j++){
        if (minimo <= lst[i].voti[j] ){
            somma+=minimo;
            conta++;
        }

例如,如果有两个学生的值为(5,4,3)(2,5,1),那么您的输出将是4+3+2+1 = 15,而您期望的是3+1=4

你的algoritm是错误的,你必须得到一个学生的最小值,而不是每次你的价值低于目前的最低值。

我给你这个伪代码,我让你把它翻译成C,这样你就能更好地理解

代码语言:javascript
复制
sum = 0
For student in students:
 | min = student.votes[0]
 | For vote in student.votes
 | | IF vote < min:
 | | | min = vote
 | sum += min

还请注意,您的均值计算必须在循环之外完成,以输出正确的值。

最后,这部分在您的算法中没有意义。

代码语言:javascript
复制
 if (minimo > lst[i].voti[j]){
                minimo = lst->voti[j];
                somma+=minimo;
                conta++;
            }

下一次,当您有这样的练习时,在纸上用伪代码编写一个算法,并手动运行它,以检查您是否找到了所需的输出。那时才开始编码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65035410

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档