当前位置:首页 » 编程语言 » c语言中怎么增加可输入行数
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言中怎么增加可输入行数

发布时间: 2022-05-28 17:38:34

c语言:怎样用malloc函数动态分配二维数组,使之可输入数组的行数和每行的列数。

这个是可以的,但是和其他网友说的一样,内存是线性的,当你在语言中分配一个多维数组的时候,编译器其实也是分配线性内存的,但是我们可以通过模拟来实现类似数组的操作,下面演示一个分配以及操作数组的实例(列数要固定,这里假设列数为4):
int _tmain(int argc, _TCHAR* argv[])
{
int (*p)[4] = (int (*)[4])0;
int row = 3;
int (*mem)[4] = (int (*)[4])0; // 定义数组首指针
mem = (int (*)[4])malloc(sizeof(int(*)[4]) * row); // 分配row行, 4列的数组
// 分别为二维数组的第一维各个元素赋值。
mem[0][0] = 1;
mem[0][1] = 2;
mem[0][2] = 3;
mem[0][3] = 4;
// 打印二维数组的各个元素的值
printf("%d, %d, %d, %d", mem[0][0], mem[0][1], mem[0][2], mem[0][3]);
free(mem);
return 0;
}

不过这里列数必须指定,还有一种方法,这种方法可以保证用户输入任意行或列,而不必要将列数定死,演示如下:

int getElement(int* arr, int colNum, int row, int col);
void setElement(int* arr, int colNum, int row, int col, int val);

int _tmain(int argc, _TCHAR* argv[])
{
int *arr = (int*)0;
int row = 3;
int col = 5;
//分配 row 行 col 列的整形数组
arr = (int*)malloc(sizeof(int) * col * row);
// 将最后一个元素值设置为100
setElement(arr, col, 2, 4, 100);
//输出最后一个元素的值
printf("%d", getElement(arr, col, 2, 4));
free(arr);
return 0;
}
//各个参数说明如下:
//arr: 数组首地址
//colNum:数组列数
//row: 要取得的元素所在行
//col: 要取得的元素所在列
int getElement(int* arr, int colNum, int row, int col)
{
return *(arr + sizeof(int) * (row - 1) * colNum + col);
}

// 此函数用来设置指定行和列的元素的值:
//arr: 数组首地址
//colNum:数组列数
//row: 要取得的元素所在行
//col: 要取得的元素所在列
//val: 要设置的值
void setElement(int* arr, int colNum, int row, int col, int val)
{
*(arr + sizeof(int) * (row - 1) * colNum + col) = val;
}

其实归根到底,还是对指针的操作,希望可以帮到你,呵呵。

❷ C语言怎么多行输入

在C语言中,要实现多行数据要使用循环语句,输入的时候输入回车键进行换行。比如要输入一个2行3列的矩阵,源码如下: #include#includeint main(){ int a[2][3]; int i,j; printf("请输入一个2行3列的矩阵:\n"); for(i=0;i<2;i++) { for(j=0;j<3;j++) { scanf("%d",&a[i][j]); } } printf("\n您输入的矩阵是:\n"); for(i=0;i<2;i++) { for(j=0;j<3;j++) { printf("%d ",a[i][j]); } printf("\n"); } system("pause"); return 0;}

❸ c语言里面怎么输入多行数据

根据数据格式的。
一般这种输入多行数据,ACM里面很常见
常用的方式有两种
1 输入整行字符串
while(gets(s))

2 每行有固定格式。
比如 固定两个整型
while(scanf("%d%d", &a, &b) != EOF)

❹ 不知道怎样用C语言输入多行数据和输出多行数据

方法一:将已输入的数据先保存到数组(二维数组)中,然后再进行数据计算并输出结果
方法二:输入时,完成计算,将结果存储到数组(一维数组)中,全部计算完成,输出结果数组。
采用哪一种方法,要看上体题目特点和要求。
如,题目:输入n行整数,输出每行的平均数 (可采用方法二)

❺ c语言中,输入时如何输入多行数据,没输入一行我用enter换行时就执行结果了,怎么搞

可以用字符型数组
每输入一个字符判断一次
终止输入的字符换成别的

❻ c语言数组,怎么样从键盘上输入行数和列数

你好!
你的scanf中用逗号分隔了两个格式符,则输入时也要用逗号分开
比如输入
2和5
2,5按下回车就行了
仅代表个人观点,不喜勿喷,谢谢。

❼ c语言里面怎么输入多行数据并且以输入0结束,输入0后才对输入数据进行处理

通过getchar()得到每次输入的字符,如果不是0就存入一个buffer中,如果是0就跳出循环:
int
n=0;//记录buffer中要处理字符的个数。
char
ch;
char*
buffer;
buffer
=
malloc(sizeof(char),MAX_SIZE);//MAX_SIZE是你自己定义的宏值
while(
(ch=getcahr())
!=
'0')
{
将ch存入buffer中,记住考虑buffer存满的情况,则用realloc重新分配内存;
n++;//记录buffer中要处理字符的个数。
}

❽ c语言中怎样实现多行输入然后再多行输出

要实现多行输入,再多行输出,可采用数组协助实现,方法如下:
方法一:将已输入的数据先保存到数组(二维数组)中,然后再进行数据计算并输出结果
方法二:输入时,完成计算,将结果存储到数组(一维数组)中,全部计算完成,输出结果数组。
采用哪一种方法,要看上体题目特点和要求。
如,题目:输入n行整数,输出每行的平均数

(可采用方法二)
参考代码:

❾ c语言怎么可以使输入有多行且每行2个正整数

循环输入
判断eof来判断是否输入结束
比如int a,b;
可以
while(scanf(“%d%d”,&a,&b)!= EOF)