C语言实战开发篇-5.1 编号方法

C语言实战开发篇-5.1 编号方法,第1张

1.定义符号常量

符号常量是指程序中符号化的常量,即用一个标识符表示一个斗孙常量。在程序的开头定空猛链义一个符号常量,令其代表一个常量数值,在下面的程序中直接使用该符号常量即可。符号常量的定义格式如下:

2.定义常变量

符号常量在编译时不会被检查类型,所以产生了常变量,定义格式如下:

在使用过程中,不能对常知亮变量进行赋值。在常变量定义初始化的值可以是具体数值,也可以是一个常量表达式

例如:

简单点的,你可以定义两个数组A和B,A存放编号,B存放编号对应的野颤其他绝饥信并脊返息,写一个函数,返回类型为string,参数为编号,遍历A数组,当找到编号匹配时记下是第i个元素,然后提取B中第i个元素对应的值并且返回。

这是你原来的方法,我改了两行,

一个是put[j]=str[i],这一行冲羡要改成put[j]=str[i]-'0',这是从char 到 int的转换,如果不变就成了把put[j]赋值成字符型str[i]的值了,

另一个在后面如判笑那个函数,return have使用之后,后面的代码就不执行了,就好象短路一样,

要放在后面,或是有条件的渣含返回

可是改了这两处之后还是不对,排出来结果差的太多,好象是你的冒泡内部的问题,要重新换种方法试试..我对排序很外行,查不出来根本所在

#include <stdio.h>

struct nn

{ int no

int num

}

typedef struct nn DATA

int number( char * , DATA [])

int main( )

{

DATA b[100]

char sa[500]//

int i, n

gets( sa )

n = number( sa, b )

for ( i=0i<ni++ )

printf("%d %d\n", b[i].num, b[i].no )

return 0

}

//

void bubbleSort(int arr[],int n)

{

int i,j,t

for(i=0i<n-1i++)

{

for(j=0j<n-i-1j++)

{

if(arr[j+1]<arr[j])

{

t=arr[j+1]

arr[j+1]=arr[j]

arr[j]=t

}

}

}

}

int number( char * str, DATA b[] )

{

int put[251],anshunxu[251],bianhao[251]

int i,j=0,have

// 得数的个数

for(i=0str[i]!='\0'i++)

{

if(str[i]!=' ')

{

put[j]=str[i]-'0'

j++

}

}

put[j]='\0'

have=j

j=0

//return have

// 把put复制到anshunxu

for(i=0i<havei++)

{

anshunxu[i]=put[i]

}

// 冒泡排序

bubbleSort(anshunxu,have)

// 得到编号的数组

for(i=0i<havei++)

{

for(j=0j<havej++)

{

if(put[i]==anshunxu[j])

{

bianhao[i]=j+1

}

}

}

bianhao[i]='\0'

for(i=0i<havei++)

{

b[i].num=put[i]

b[i].no=bianhao[i]

}

return have

}

以上回答你满意么?


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12349938.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存