Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2363283
  • 博文数量: 816
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5010
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-17 17:57
文章分类

全部博文(816)

文章存档

2011年(1)

2008年(815)

分类:

2008-12-17 18:07:25

//---------------------------------------------------------------------------

/*

使用了Edit1,Label1和Button1,在Edit1中输入字符串,按下Button1开始处理,
由Label1输出结果

*/

#include
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void swap(char &x,char &y) //使用引用交换两个数
{
    char temp;
    temp=x;
    x=y;
    y=temp;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
String str;  //存储字符串
int n,i,j,max,min; //n记录字符串的长度
int k_min,k_max;   //记录最小值在数组中的位置

str=Edit1->Text+'\0';

for(i=1;str[i];i++)  //循环将字符型转化为整型
    str[i]-=48;

n=i; //n记录了字符串的长度

min=str[1];
max=str[1];
k_min=1;
k_max=1;

//这个循环求出最大和最小值,并记录它们在数组中的位置
for(i=2;i{
    if(str[i]    {
        min=str[i];
        k_min=i;
    }
    if(str[i]>max)
    {
        max=str[i];
        k_max=i;
    }
}

//最小值加8,最大值加3
str[k_min]+=8;
str[k_max]+=3;

//这个循环完成对所有数加3,并且把两位数的数字取个位
for(i=1;i{
    str[i]+=3;
    if(str[i]>9)
        str[i]%=10;
}

//这个循环使用选择排序法对数字从小到大进行排列
for(i=1;i    for(j=i+1;j        if(str[i]>str[j])
            swap(str[i],str[j]);  //引用调用swap

//这个循环将数字转化为字符型,以便输出
for(i=1;i    str[i]+=48;

i--; //i--为字符串最后一个字符的位置

swap(str[1],str[i]);//再调用swap,交换第一位和最后一位

Label1->Caption=str; //输出

}
//---------------------------------------------------------------------------


--------------------next---------------------

阅读(1231) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~