| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 829 人关注过本帖
标题:[求助] 一个QB程序问题: 只学到FOR-NEXT语句,怎么写出“求各位数字之和” ...
只看楼主 加入收藏
琵琶语
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2007-3-24
收藏
 问题点数:0 回复次数:3 
[求助] 一个QB程序问题: 只学到FOR-NEXT语句,怎么写出“求各位数字之和”的语句

正在学 QB
只学到FOR-NEXT语句

题目要求:
键盘接收一个数字
求该数字各个位上的数字之和

因为数字的位数不知道 所以我不知道怎样提取各位数字。
请写出提取各位数字的语句,谢谢。

搜索更多相关主题的帖子: FOR-NEXT语句 数字之和 键盘 
2007-03-24 12:07
huangwy
Rank: 1
等 级:新手上路
威 望:2
帖 子:297
专家分:0
注 册:2007-3-23
收藏
得分:0 
我想,应该设置一个最大值
然后才根据最大值来进行测试,这是基于数字类型的用法;
你还可以用字符类型的输入
在录入时控制只能数字有效
然后可以用strlen进行位数计算
用mid取一位数进行循环计算
2007-03-25 03:17
羽之歌
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-11-18
收藏
得分:0 

我用C#写过个类似的程序不完全一样是算男女融合度的,只是个雏形
[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]

2007-03-25 21:41
快速回复:[求助] 一个QB程序问题: 只学到FOR-NEXT语句,怎么写出“求各位数字 ...
数据加载中...
 
   



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

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