c语言中 将数组列换行 行换列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言中 将数组列换行 行换列相关的知识,希望对你有一定的参考价值。

1、如果是二维数组,将就可按行输出就行:
for(i=0;i<3;i++) //按每一行输出,每循环一次输出一行
for(j=0;j<3;j++) //输出每一行中的每一列
printf("%3d",a[i][j]);
printf("\n"); //每输出一行,输出一个换行符


2、如果是一维数组,可按每行输出的数的个数来控制:
for(i=0;i<9;i++)
printf("%3d",a[i]); //a为一维数组
if((i+1)%3==0) printf("\n"); //每行输出三个数,因为数组的下标i从0开始,所以先加个1再除3取余数
参考技术A for(i=1;i<n;i++)
for(j=0;j<n;j++)

if(j<i)

k=a[i][j];a[i][j]=a[j][i];a[j][i]=k;

if(j>=i) break;


n为数组的行数和列数,此代码只能判断行列数一样(可以理解为矩形数组吧),如果不一样会产生未知错误,C语言是不会检查数组边界的哦!如果用楼上的方法自己画一画就会知道转来转去的,n为奇数或偶数时只有一个是正确的输出结果!
参考技术B 如果是我遇到这种问题,我不对原数组做任何操作,
而是用一个函数来实现转置后的操作,
假设原数组为a[m][n];
converse函数返回a[row][col]对应转置位置的元素a[col][row]。
int converse(int pArray[][n],unsigned int row, unsigned int col)

if (row>m-1||col>n-1)

printf ("下标错误!\n");
return 0;

int a=*(*(pArray+col)+row);
return a;
参考技术C if(i!=j)

k=a[i][j];a[i][j]=a[j][i];a[j][i]=k;

自己加循环
参考技术D 嘻嘻

将表格行换行到下一行

【中文标题】将表格行换行到下一行【英文标题】:Wrap table row to the next line 【发布时间】:2021-05-09 19:43:10 【问题描述】:
<table id="table_id">
  <tr>
    <td>testtesttesttest</td>
    <td>testtesttesttest</td>
  </tr>
</table>

我想如果表格在屏幕上放不下,那么表格的第二个单元格会被转移到另一行下来吗?不是单元格中的文本,而是整个单元格。

【问题讨论】:

Possible duplicate of this question @eggy 绝对不是。并非一切都是 jQuery。 @Keelan 现在,一切都是媒体查询。 @lolzerywowzery 对于可以用inline-block 解决的问题似乎有点过头了。 【参考方案1】:

将单元格更改为内联块:

#table_id 
  display: block;


#table_id td 
  display: inline-block;


td 
  background: green
<table id="table_id">
  <tr>
    <td>testtesttesttest</td>
    <td>testtesttesttest</td>
  </tr>
</table>

jsfiddle

【讨论】:

你是 CSS 大神!!每个其他答案都声称这是不可能的,但这有效。我的情况是我无法将表格更改为 div,因为它是由我不创作的插件生成的。 不错。有没有办法“包装”整个列,即当一个单元格在一行中换行时,也可以在其他行中换行相同的单元格? @rustyx:(可能有点晚了,但是)对我有用的是在表格单元格上设置宽度(以 em 为单位,以便它随着用户缩放而缩放)。 这会包裹长行,但不会包裹短行,因此列不能正确排列。特别是,如果您有一行列标题,它们不会与其下方的数据列对齐。 添加vertical-align:top 是必不可少的,否则您将无法模拟td,因为垂直对齐会失效。 niet 的回答显示了如何在没有表格标签的情况下执行此操作,但垂直对齐对于将 td 标签从表格单元格更改为内联块或块(如果中断为行)仍然很重要。【参考方案2】:

在Jukka's answer 基础上改进。

HTML:

<table id="table_id">
<tr>
<td> testtesttesttest</td>
<td> testtesttesttest </td>
<td> testtesttesttest </td>
<td> testtesttesttest </td>
<td> testtesttesttest </td>
</tr>
<tr>
<td> testtesttesttest</td>
<td> testtesttesttest</td>
<td> testtesttesttest</td>
<td> testtesttesttest</td>
<td> testtesttesttest</td>
</tr>
</table>

CSS:

#table_id  display: block; 
#table_id  td display: inline-block; border: 3px solid #FFFFFF;
td  background: green;
     border: 3px solid #FFFFFF; /* to show cell sizes */

访问http://jsfiddle.net/zjbyE/391

【讨论】:

【参考方案3】:

这不能用表格来完成,“行列”网格是固定的。

但是你可以使用inline-block 元素:

<div id="container">
    <div>testtesttesttest</div>
    <div>testtesttesttest</div>
</div>

CSS:

#container>div display:inline-block;vertical-align:top

【讨论】:

以上是关于c语言中 将数组列换行 行换列的主要内容,如果未能解决你的问题,请参考以下文章

怎么用C语言中for循环输出数列:1,1,2,3,5,8..的前n个数

C语言中如何用gets();语句来接收一个二维数组

Python的JSON数组换行问题,怎么解决

js 数组输出换行问题

c语言字符串数组怎么输入和输出呢

Linux小练习进度条程序