Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
即使在c中声明变量后仍返回垃圾值的程序_C_Multidimensional Array - Fatal编程技术网

即使在c中声明变量后仍返回垃圾值的程序

即使在c中声明变量后仍返回垃圾值的程序,c,multidimensional-array,C,Multidimensional Array,如何更正此问题 我不是故意使用结构的 这是一个输入学生姓名、科目和分数的程序。 在最后一个块中,数组(subject+f)的第一个下标返回垃圾值,而其余下标返回所需的结果。 我还发布了输出图像作为链接 #包括 #包括 int main() { 整数大小,i,k,sub,a=0,参考; int-temp,已排序; 煤焦温度[10]; char temp_sb[10]; printf(“输入类的大小\n”); scanf(“%d”,大小(&S); printf(“有多少主题?\n”); scanf(

如何更正此问题

我不是故意使用结构的 这是一个输入学生姓名、科目和分数的程序。 在最后一个块中,数组(subject+f)的第一个下标返回垃圾值,而其余下标返回所需的结果。 我还发布了输出图像作为链接

#包括
#包括
int main()
{
整数大小,i,k,sub,a=0,参考;
int-temp,已排序;
煤焦温度[10];
char temp_sb[10];
printf(“输入类的大小\n”);
scanf(“%d”,大小(&S);
printf(“有多少主题?\n”);
scanf(“%d”、&sub);
参考=sub;
字符名称[大小][20];
字符主题[size*sub][20];
整数标记[子*大小];
整数总计、小计、合计;

对于(k=0;k而言,除了名称和主题的长度问题外,这是一个主要问题:

(subject+k)
您可能误解了
主语[k]
*(主语+k)
等同物

变量
subject
是一个数组数组。这意味着
subject[i]
是一个数组(字符
char
,可以用作以零结尾的字符串)


表达式
(subject+k)
是指向
subject[k]
中数组的指针。它等于
&subject[k]
,其类型为
char(*)[10]
。如果不取消引用,它就不能用作以零结尾的字符串。因此,也可以使用
*(subject+k)
或者简单易懂的
主题[k]

我想你也需要改变

int marks[sub];


每个学生每门学科一个分数,对吗?

我建议您使用调试器并逐步完成程序。您的索引肯定有问题。是否有学生或学科名称超过九个字符?为什么不使用学科[f]?我认为主题是一个字符**,你想要一个字符*。二维数组是指向一个指针的指针。虽然你想要在字符*中写入。它现在可以工作了,但是(j=a;jc您能用当前完整的代码更新问题吗?我更新了它。只要输入的大小不超过2,它就可以正常工作。在提示标记之前添加此调试语句,我想您会看到正在发生的事情
printf(“%d..%d\n”,j,reference)
谢谢。问题出在
reference=reference+j;
上。所以我把它改成了
reference=sub+j
我理解,但它似乎对结果没有任何影响。尽管我已经纠正了它。
int marks[sub];
int marks[size * sub];