萌新求救,大神们给解下惑,谢谢
#include<stdio.h>
#include <stdlib.h>
#include<memory.h>
int max; //这里为什么要定义全局变量,定义在main函数里的局部变量输出一维数组中的值好像不对?为什么?能为我解下惑吗?
int k;
int main(void)
{ int i, j;
char *a = { {"学号","34","65"},{"11","学号","78"},{"25","90","学号"},{"34","41","89"} }; //这里为什么用二维指针数组,用二维数组好像会报错,求解惑,谢谢
printf("二维表如下:\n");
for(i = 0; i < 4; i++)
{
for(j = 0; j < 3; j++)
{
printf("%s ", a); //按二维表格形式输出4*3表格数据
}
printf("\n");
}
for(i = 0; i < 4; i++)
{
for(j = 0; j < 3; j++)
{
if(a != a) //将不是"学号"的字符转换为整形
{
max = atoi(a); //atoi是将字符转换为整形的函数
}
}
}
for(i = 0; i < 4; i++)
{
for(j = 0;j < 3; j++)
{
if(max >= k)
{
k = max; //对比二维表格中每一行的数据将最大值,放在相应的一维表格中
}
}
}
printf("一维表格的内容是:\n");
for(i = 0; i < 4; i++)
{
printf("%d ",k);
}
}
int max; //这里为什么要定义全局变量,定义在main函数里的局部变量输出一维数组中的值好像不对?为什么?
从代码来看,应该可以放到main函数里面,如果出错,提示是什么?
char *a = { {"学号","34","65"},{"11","学号","78"},{"25","90","学号"},{"34","41","89"} }; //这里为什么用二维指针数组,用二维数组好像会报错,求解惑,谢谢
因为这里的数组是三维的,里面的每一个元素都是一个二维数组 BngThea 发表于 2018-6-20 15:36
int max; //这里为什么要定义全局变量,定义在main函数里的局部变量输出一维数组中的值好像不 ...
error:excesselementsinchar array initializer
报的是这个错误,我看不太懂,还有这里的数组怎么是三维的啊,看不出来啊 ~白. 发表于 2018-6-20 15:48
error:excesselementsinchar array initializer
报的是这个错误,我看不太懂,还有这里的数 ...
你看里面的每一个元素是不是二维的,比如{"学号","34","65"} ~白. 发表于 2018-6-20 15:48
error:excesselementsinchar array initializer
报的是这个错误,我看不太懂,还有这里的数 ...
warning: implicit declaration of function 'atoi' [-Wimplicit-function-declaration]
如果是局部变量的话报上面的错误,能运行但值不对 BngThea 发表于 2018-6-20 15:53
你看里面的每一个元素是不是二维的,比如{"学号","34","65"}
恩,知道了,谢了 BngThea 发表于 2018-6-20 15:36
int max; //这里为什么要定义全局变量,定义在main函数里的局部变量输出一维数组中的值好像不 ...
没有错误提示,能运行成功就是一维表格输出的值不对
页:
[1]