using System;
namespace JiaMi { class Class1 { static void Main() { string str; start:Console.WriteLine("请输入四位待加密的数字:"); try { str=Console.ReadLine(); int q=int.Parse(str); if (q>=1000&&q<=9999) { string s0=str[0].ToString(); string s1=str[1].ToString(); string s2=str[2].ToString(); string s3=str[3].ToString(); int i0=(int.Parse(s0)+7)%10; int i1=(int.Parse(s1)+7)%10; int i2=(int.Parse(s2)+7)%10; int i3=(int.Parse(s3)+7)%10; Console.WriteLine("加密后的数字:{0}{1}{2}{3}",i2,i3,i0,i1); } else { Console.WriteLine("您输入的数字不在范围之内"); goto start; } } catch { Console.WriteLine("您想用字母加密吗?对不起本版本不提供该功能。"); Console.WriteLine("如果您想使用本软件的全部功能,请将999999元汇至XX银行XXXXXXX帐户^_^"); }
} } } 已经写好,只实现了加密的过程。但我感觉代码还是有点问题:
1 如果这个数加7后小于10,那么与10求余的结果是这个数本身。正确吗? 2 我在代码里面使用了 goto 无条件跳转语句。我想应该还有其他办法实现。
哪位大虾能帮忙改一下
[此贴子已经被作者于2005-3-9 20:09:27编辑过]
试试这个,没有加上default,你可以加上: using System;
namespace ConsoleApplication1 { class Class1 { static void Main(string[] args) { int a; int n1,n2,n3,n4 ; int n1_1,n2_2,n3_3; int N1,N2,N3,N4; bool k1=true; while(k1) { Console.WriteLine(" 请输入四位数"); a=int.Parse(Console.ReadLine()); n1=a/1000; n1_1=a%1000; N1=(n1+7)%10; Console.Write(N1);
n2=n1_1/100; n2_2=n1_1%100; N2=(n2+7)%10; Console.Write(N2); n3=n2_2/10; n3_3=n2_2%10; N3=(n3+7)%10; Console.Write(N3);
n4=n3_3; N4=(n4+7)%10; Console.WriteLine(N4); System.Threading.Thread.Sleep(2000); bool k2=true; Console.WriteLine("are you contiue\0 y/n"); string x1= Console.ReadLine(); while(k2) { switch(x1) { case"y": k1=true; k2=false; break; case "n": k1=false; k2=false; break; } } } } } }