符号常量是指程序中符号化的常量,即用一个标识符表示一个斗孙常量。在程序的开头定空猛链义一个符号常量,令其代表一个常量数值,在下面的程序中直接使用该符号常量即可。符号常量的定义格式如下:
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
}
以上回答你满意么?
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)