C语言横变列
Ⅰ c语言:二维数组行列互换
由于行、列不确定,所以要动态处理。举例代码如下:
//#include"stdafx.h"//Ifthevc++6.0,withthisline.
#include"stdio.h"
#include"stdlib.h"
intmain(void){
int**a,**b,m,n,i,j;
while(1){//保证输入的行、列数为正数
printf("Pleaseenterm&n(intm>0,n>0)... ");
if(scanf("%d%d",&m,&n),m>0&&n>0)
break;
printf("Error,redo:");
}
a=(int**)malloc((j=sizeof(int))*m);
b=(int**)malloc(j*n);
if(a==NULL||b==NULL){
printf("Applicationmemoryfailure... ");
exit(0);
}
for(i=0;i<m;i++)
if((a[i]=(int*)malloc(j*n))==NULL){
printf("Failedtocreatethearray... ");
exit(0);
}
for(i=0;i<n;i++)
if((b[i]=(int*)malloc(j*m))==NULL){
printf("Failedtocreatethearray... ");
exit(0);
}
for(i=0;i<m;i++)
for(j=0;j<n;scanf("%d",a[i]+j++));
printf(" ");
for(i=0;i<n;i++){
for(j=0;j<m;j++)
printf("%d",b[i][j]=a[j][i]);//a的行、列互换后存入b
printf(" ");
}
for(i=0;i<m;free(a[i++]));
free(a);
for(i=0;i<n;free(b[i++]));
free(b);
return0;
}
Ⅱ c语言中如何将行输入转换成列输入
#include<stdio.h>
void print(int n[5][5])
{
int i, j;
for(i = 0; i < 5; i++)
{
for(j = 0; j < 5; j++)
{
printf("%d\t",n[i][j]);
}
printf("\n");
}
}
void zx1(int n[5][5]) /*以表格的中线旋转 11-15 */
{
int i, j;
int m;
for(i = 0; i < 2; i++)
{
for(j = 0; j < 5; j++)
{
m = n[i][j];
n[i][j] = n[4-i][j];
n[4-i][j] = m;
}
}
}
void zx2(int n[5][5]) /*以表格的中线旋转 3-23*/
{
int i, j;
int m;
for(i = 0; i < 2; i++)
{
for(j = 0; j < 5; j++)
{
m = n[j][i];
n[j][i] = n[j][4-i];
n[j][4-i] = m;
}
}
}
void djx1(int n[5][5]) /*对角线1-25*/
{
int i, j;
int m;
for(i = 0; i < 5; i++)
{
for(j = i; j < 5; j++)
{
m = n[i][j];
n[i][j] = n[j][i];
n[j][i] = m;
}
}
}
void djx2(int n[5][5]) /*对角线21-5*/
{
int i, j;
int m;
for(i = 0; i < 4; i++)
{
for(j = 0; j < 4-i; j++)
{
m = n[i][j];
n[i][j] = n[4-j][4-i];
n[4-j][4-i] = m;
}
}
}
int main()
{
int n[5][5]=;
print(n);
djx2(n);
print(n);
getch();
}
Ⅲ c语言将横版英文变为竖版,
最简单的方法,就是把文章保存到二维数组,然后列、行嵌套循环打印就行。
#include<stdio.h>
#include<string.h>
#defineROW3//字符串行数
intmain()
{
inti,j,flag;
charstr[][10]={"aaabbbbb","eeefff","iiiijjjj"};
printf("原文章:
");
for(i=0;i<ROW;i++)
printf("%s
",str[i]);
printf("
变成竖版:
");
j=0;
while(1)
{
flag=ROW;
for(i=0;i<ROW;i++)
{
if(j<=strlen(str[i])-1)
printf("%c",str[i][j]);
else
printf(""),flag--;
}
printf("
");
if(!flag)//所有行最后一位都已打印,结束列循环
break;
j++;
}
return0;
}
Ⅳ c语言数组横向和纵向互相转换 应该怎么编求大神帮忙
#include "stdio.h"
#include "conio.h"
#define N 9
int main()
{
int a[N][N];
int i,j,k=0;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
a[i][j]=k++;
for(i=0;i<N;i++){
for(j=0;j<N;j++)
printf("%4d",a[i][j]);
printf("\n");
}
for(i=0;i<N;i++)
for(j=0;j<i;j++){
k=a[i][j];
a[i][j]=a[j][i];
a[j][i]=k;
}
printf("\n");
for(i=0;i<N;i++){
for(j=0;j<N;j++)
printf("%4d",a[i][j]);
printf("\n");
}
return(0);
}
Ⅳ c语言怎么将横着的文字变竖
这是你选择编译系统的字体,选错了。
请把字体名字前的"@黑体",改为"黑体"。(具体哪种体不重要,重要的是去掉那个"@")
Ⅵ 使用C语言实现一个字节纵向排列(低位在上、高位在下)转换横向排列(高位在左、低位在右)
假定这个数在b,
依次对B的最低对2取余,然后放到a字节,然后取8次,就地位变成高位了
a=0;
for (i=0;i<8;i++)
{
if (b%2==1)
a=a+1;
a=a*2;
b=b\2;
}