小程序(一)

本文介绍了一个简单的C语言程序,该程序接收一串无序数字和一个整数作为输入,通过排序这些数字并查找所有可能的数字对,使得这对数字之和等于给定的整数。如果找不到符合条件的数字对,则会提示用户重新输入。

输入一串乱序的数字和一个整数。

首先将其排序,再在这个有顺序的数字串中,找出所有两个数字之和等于那个整数的数对,并打印,如果没有,那么提示重新输入。

CODE:

#include <stdio.h>

#include <string.h>

char tab[ 200 ];      //存放数字串

int  num;          //输入的整数

int count = 0;       //数字串的长度

void serial ()       //得到数字串

{

printf("请输入一串无序的数字,以回车结束:\n");

   scanf("%s",tab );

}

void intnumber()     //得到整数

{

printf("请输入一个整数:\n");

scanf("%d",&num);

}

void sort()        //从小到大排序

{

int i = 0;

int j = 0;

char temp;

count = strlen(tab);

for ( j = 0; j < count - 1; j ++ )  //排序

{

  for ( i = 0; i < count - 1 - j; i ++ )

  {

    if ( tab[ i ] > tab[ i + 1 ] )

    {

    temp = tab[ i + 1 ];

    tab[ i + 1 ] = tab[ i ];

    tab[ i ] = temp;

    }

  }

}

printf("由小到大排列后的数字串为:\n");

for ( i = 0; i < count; i ++ )

{

  printf("%c",tab[ i ] );

}

}

void find()        //寻找两个数字之和等于num

{

int i = 0;

int j = 0;

int flag = 0;

for ( j = 0; j < count - 1; j ++ )

{

  for ( i = j + 1; i < count; i ++ )

  {

    if ( num ==  tab[ i ]-'0'  +  tab[ j ]-'0' )     // 减去'0'是为了将字符转为对应的整型数值

    {

if (flag == 0)

printf("\n配对情况如下:\n");

       printf(" %c + %c = %d \n", tab[ j ], tab[ i ], num );

flag = 1;

    }

  }

}

if ( flag == 0 )

printf("\n没有找到,请重新输入!");

}

void main()

{

serial();

intnumber();

sort();

find();

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值