| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1212 人关注过本帖
标题:[求助]控制台数据处理问题
只看楼主 加入收藏
梦之翼
Rank: 1
等 级:新手上路
帖 子:74
专家分:4
注 册:2006-7-5
结帖率:100%
收藏
 问题点数:0 回复次数:18 
[求助]控制台数据处理问题
我想用控制台编一个有关朋友搭配度的程序,具体流程如下:
获得两个名字拼音变量 Zhangsan Lisi
经过字符串处理 zhangsan lisi
经过if语句得到名字中a,e,i,o,u的数量 a=2 e=0 i=2 o=0 u=0
再进行计算这里我就实现不了了
a e i o u
2 0 2 0 0 //两两相加
2 2 2 0
4 4 2
8 6
14

得到搭配度为14
但如果换一个
a e i o u
2 2 1 2 1
4 3 3 3
7 6 6
13 12 //注意这里变量中变成了一个两位数,需要把它分割成两个含一位数的变量再进行相加。
4 4 3
87
请问如何实现?对变量a e i o u 的操作?

搜索更多相关主题的帖子: 台数 
2006-07-05 16:36
梦之翼
Rank: 1
等 级:新手上路
帖 子:74
专家分:4
注 册:2006-7-5
收藏
得分:0 
这是完成除a e i o u 变量处理的操作
static void Main(string[] args)
{
string myName,itName,themName;
int a=0,e=0,i=0,o=0,u=0.result=0;
Console.WriteLine ("请以拼音的形式输入你的名字,如张三:zhangsan");
myName=Console.ReadLine();
Console.WriteLine ("请以拼音的形式输入他(她)的名字,如张三:zhangsan");
itName=Console.ReadLine();
Console.WriteLine ("{0},{1}",myName,itName);
themName=myName+itName;
Console.WriteLine ("{0}",themName);
themName=themName.ToLower ();
char[]nameChars=themName.ToCharArray();
foreach(char character in nameChars)
{
if(character=='a')
{
a+=1;
}
else if(character=='e')
{
e+=1;
}
else if(character=='i')
{
i+=1;
}
else if(character=='o')
{
o+=1;
}
else if(character=='u')
{
u+=1;
}
}

既不回头,何必不忘。 既然无缘,何必誓言。 今日种种,似水无痕。 明夕何夕,君已陌路。
2006-07-05 16:39
noshow
Rank: 2
等 级:新手上路
威 望:4
帖 子:1127
专家分:0
注 册:2006-4-21
收藏
得分:0 


累死我了 目前做到以下的进度
输入个数:5
然后依次输入大小
最后得出的第一个是正确结果



[CODE]using System;
namespace BC_CN_TEST1
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
class Class1
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
//
// TODO: 在此处添加代码以启动应用程序
//

int [] aeiou=new int [5];
int result;
int num;
System.Console .Write ("Please Input Number:");
num=Convert.ToInt32 (System.Console .ReadLine ());
for(int i=0;i<num;i++)
{
System.Console .Write("No.{0}: ",i+1);
aeiou[i]=Convert.ToInt32 (System.Console .ReadLine ());
}
Console.Write ("-------------------------\nResult is ");
result=Compute(aeiou);
Console.WriteLine (result);
}
//该函数输入一个字符数组 比如111返回运算结果4
每次转换完都要对结果进行检查是否超标
static int Compute(int[] s)
{
int [] temp=new int [s.Length ];
temp=s;
int tempi=0;
for(int j=0;j<s.Length ;j++)
{

for(int i=0;i<s.Length -1;i++)
{
temp[i]=temp[i]+temp[i+1];
if(i==0)//判断递归层次
j++;
tempi=i;
}
Check(temp,s.Length -tempi);//判断是否超标 如果不超标直接返回 继续执行循环
}
temp[0]=temp[0]+temp[1];//最后一层运算
Console.WriteLine (temp[0]);
return temp[0];

}
//该函数对执行加法一次运算后的数字进行检查
如果此行中有超标者 则转换比如 17换为1 7
然后再次调用计算

static int Check(int[] s,int lth)
{
if(lth==1)//是否执行到最后一层
return 0;
int max=0;
for(int i=0;i<lth ;i++)//检查送进来的数字是否超标 max为计数器
{
if(s[i]>9)
max++;
}
if(max==0)//没有超标的数
return 0 ;
int[] maxDeal=new int [lth +max];//超标的话则对数进行转换 比如以前是[1,15] 现在生成一个新的[1,1,5]
int num=0;
for(int i=0;i<lth ;i++)//转换程序
{
if(s[i]>9)//超标的数分裂
{
maxDeal[num]=1;
num++;
maxDeal[num]=s[i]-10;
num++;
}
else//不超标的数直接存储到新数组中去
{
maxDeal[num]=s[i];
num++;
}
}
return Compute(maxDeal);//转换完毕后 继续计算新生成的数组
}
}
}[/CODE]


以上程序在 WIN2003 系统 2003.NET下调试通过
有待有兴趣的朋友继续修改
这个程序是一个递归程序

[此贴子已经被作者于2006-7-7 13:44:09编辑过]


此号自封于2006年11月30日
2006-07-06 17:36
noshow
Rank: 2
等 级:新手上路
威 望:4
帖 子:1127
专家分:0
注 册:2006-4-21
收藏
得分:0 

目前5个数是能算出来的
如果要算其他的个数需要继续修改
楼主要算的已经可以算出来了


此号自封于2006年11月30日
2006-07-06 17:38
noshow
Rank: 2
等 级:新手上路
威 望:4
帖 子:1127
专家分:0
注 册:2006-4-21
收藏
得分:0 
测试数据有:
0 0 0 0 0->0
2 0 2 0 0 ->14
2 2 1 2 1-> 15
2 2 2 2 2 ->4
1 1 1 1 1 ->16
输入太大的 比如 5 5 5 5 5 等
计算量太大

此号自封于2006年11月30日
2006-07-06 17:41
梦之翼
Rank: 1
等 级:新手上路
帖 子:74
专家分:4
注 册:2006-7-5
收藏
得分:0 
发自肺腑的感谢noshow
这已经完全足够了
如果是中国人的名字话!

既不回头,何必不忘。 既然无缘,何必誓言。 今日种种,似水无痕。 明夕何夕,君已陌路。
2006-07-07 08:57
noshow
Rank: 2
等 级:新手上路
威 望:4
帖 子:1127
专家分:0
注 册:2006-4-21
收藏
得分:0 
本来想实现无论几个数都能算的
后来发现这样的课题太大
于是重点调试了5个数的情况
不过这个架子如果调试好了应该可以实现吧
如果要让这个程序好好干活的话
你还要继续加工袄

此号自封于2006年11月30日
2006-07-07 09:33
梦之翼
Rank: 1
等 级:新手上路
帖 子:74
专家分:4
注 册:2006-7-5
收藏
得分:0 
System.Console .Write ("Please Input Number:");
为什么要用System的名称空间?

既不回头,何必不忘。 既然无缘,何必誓言。 今日种种,似水无痕。 明夕何夕,君已陌路。
2006-07-07 09:48
noshow
Rank: 2
等 级:新手上路
威 望:4
帖 子:1127
专家分:0
注 册:2006-4-21
收藏
得分:0 
习惯而已 HOHO

此号自封于2006年11月30日
2006-07-07 09:54
梦之翼
Rank: 1
等 级:新手上路
帖 子:74
专家分:4
注 册:2006-7-5
收藏
得分:0 
是个良好习惯!
在团队编汇的时候不会乱

既不回头,何必不忘。 既然无缘,何必誓言。 今日种种,似水无痕。 明夕何夕,君已陌路。
2006-07-07 10:00
快速回复:[求助]控制台数据处理问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.044225 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved