c - 请任何人检查我的代码看看有什么问题

标签 c

#include <stdio.h>

int getAvg(int a, int b, int c);
int main()
{
  int a,b,c;
  int i;
  int avg[5];

  char name[5][10] ;
  int korean[5], english[5], maths[5] ;
  char message[2][10] = {"Pass","No Pass"};

  for ( i = 0; i < 5; i++ )
  {
      printf("Enter your marks <name,korean,english,maths \n");
      scanf("%s%d%d%d",name[i],&korean[i],&english[i],&maths[i]);
  }


  for (i = 0; i < 5; i++)
 {


    printf("name:%s, korean:%d, english:%d, maths:%d, average:%d",name[i],korean[i],english[i],maths[i],avg[i]);
    avg[i] = getAvg(a,b,c);

    if (avg[i]>60)
    {
      printf("==%s",message[0]);
    }

    else
    {
      printf("==%s",message[1]);
    }

 }


int getAvg(int a, int b, int c)
  {
    int avg;

    avg = (a+b+c)/3;

    return avg;
  }
 }

我想这样打印

Enter your marks <name,korean,english,maths>
kim 10 50 60
Enter your marks <name,korean,english,maths>
hanna 50 60 70
Enter your marks <name,korean,english,maths>
lee 80 70 60
Enter your marks <name,korean,english,maths>
lori 70 80 90
Enter your marks <name,korean,english,maths>
kang 60 70 80

name:kim,korean:10,english:50,maths:60,average:40 == no pass
name:hanna,korean:50,english:60,maths:70,average:60 == no pass
name:lee,korean:80,english:70,maths:60,average:70 == pass
name:lori,korean:70,english:80,maths:90,average:80 == pass
name:kang,korean:60,english:70,maths:80,average:70 == pass

如果结果是我的错误或者问题太简单了,我真的很抱歉.. 5 小时后到期,但我不知道出了什么问题.. 它一直告诉我 getAve 函数未定义引用,我看不出有什么问题..请有人帮助我吗? :(

最佳答案

您的getAvg位于main内。将其移出(或者等效地将一个外大括号从代码末尾移到 getAvg 定义开始的上方)。平均值的计算也有问题,但这是一个逻辑错误,而不是语法错误。 (具体来说,您正在计算 abc 的平均值 - 检查您定义这些变量值的位置,然后您'在计算之前重新打印内容)。

关于c - 请任何人检查我的代码看看有什么问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26154618/

相关文章:

c - 递归计数

c - 如何按名称(字符串)排序和搜索 BST?

java - 将 RCON 转换为 Java

c++ - 有没有办法从传递给 C API 的函数指针修改类状态?

c - 标记化来自 getline 的输入

c++ - 在 C 中通过 const 引用传递

c - 检查内核模块中的 '.read' 函数时出错

c - 将文件映射到结构数组的有效方法是什么?

c - 当您向 GtkTable 添加超出其指定大小的项目时会发生什么?

c++ - 服务器进程等待客户端输入/消息的最佳方式是什么