为了让大家方便理解,我把我这个程序的目的说一下
是把从键盘输入的字符串进行加密后得到另一字符串
比如输入:go to my home tomorrow
首先将它变成数组,格式由你自己来定,比如你要变成5列的
gotom
yhome
tomor
row
(这个可以不显示只是转换的过程)
然后你键入你想要输出字符的顺序(注意是按列输出的)比如顺序是34012
输出的字符串就是omomergytrohootomw
下面是我写的代码,运行时候出错了:我自己改不了,请大家帮忙指点下
我学C#才10来天,email是dai--yl@hotmail.com,希望大家加我和我一起讨论,共同进步!
using System;
using System.Text;
public class SimpleColumnarTransposition
{
public static void Main()
{
int row,line,number,i;//row是行数,line是列数,number是字符在键盘输入经处理后字符在字符串中的位置
string arg;
arg=Console.ReadLine();
StringBuilder args=new StringBuilder(arg);
args=args.Replace(" ","");
Console.WriteLine("输入一个数字定义是几列的数组:");
line=Convert.ToInt32(Console.Read());//输入几列的数组
int leavenumber=args.Length%line;
int row1=args.Length/line;
if (leavenumber==0)
{
row=row1-1;
}
else
{
row=row1;
}
int count=0;//记是args的第几个字符
char[][] ch=new char [row][];
while (count<args.Length)
{
for (int row2=0;row2<=row;row2++)
{
for (i=0,number=count;i<line;i++,number++,count++)
{
ch[row2][i]=args[number];
Console.Write(ch[row2][i]);
}
}
}
Console.WriteLine("Press the key number:");
string s=Console.ReadLine();
foreach(char number1 in s)
{
int number2=Convert.ToInt32(number1);
for (int x=0;x<=row;x++)
{
Console.Write(""+ch[number2][x]);
}
}
}
}