我开始学习C语言编程,我有这个任务,我必须在另一个文件上编写一个带有部分代码的程序。但是我在最后一部分遇到了问题,因为我使用的是矩阵。
这是主体:
#include <stdio.h>
#include "otsenkatry.c"
int main()
{
int i, j;
int a[i];
int s, gru;
char A, B, C, D, E;
printf("Introduce the number os students ", &s);
fflush(stdout);
scanf("%d", &s);
printf("Introduce their gradesn");
fflush(stdout);
for (i = 0; i<s; i++)
{
printf("a[%d] = ", i);
fflush(stdout);
scanf("%d", &a[i]);
printf("Grade: %d %d n", a, otsenkatry(a));
fflush(stdout);//}
}
return 0;
}
这就是问题的部分:
int otsenkatry (int* a)
{
int i;
int gru;
if (a[i]<51)
{
gru=2;
}
if (a[i]>50 && a[i]<69)
{
gru=3;
}
if (a[i]>69 && a[i]<=85)
{
gru=4;
}
if (a[i]>85 && a[i]<=100)
{
gru=5;
}
return gru;
}
我想,这与指针有关,但我不知道如何改变它。
矩阵具有未定义的大小:
int i, j;
int a[i];
要正确声明矩阵a[]
,您需要传递大小 -i
变量的值。不幸的是,i
变量在上面一行声明,没有用任何值进行初始化。
您的代码存在一些问题:
- 数组
a
未正确声明 - 打印数组
a
而不是整数 otsenkatry
的参数是数组,但应该是一个整数- 包括一个 .c 文件
- 在
otsenkatry
中使用未定义的i
值作为数组索引 - 第一个
printf
中的参数 &s 无效 otsenkatry
功能可以简化- 变量
j
、gru
、A
、B
、C
、D
、E
在 main 中定义,但从未使用
下面是一个更正的实现:
#include <stdio.h>
int otsenkatry (int v) {
if (v<51)
return 2;
if (v<69)
return 3;
if (v<=85)
return 4;
if (v<=100)
return 5;
return 0;
}
int main(){
int i, a[100], s;
printf("Introduce the number of students ");
fflush(stdout);
scanf("%d", &s);
if (s > 100)
s = 100;
printf("Introduce their gradesn");
fflush(stdout);
for (i = 0; i<s; i++) {
printf("a[%d] = ", i);
fflush(stdout);
scanf("%d", &a[i]);
printf("Grade %d: %d n", a[i], otsenkatry(a[i]));
fflush(stdout);
}
return 0;
}