
#include <stdlib.h>
#include <time.h>
void Init(int a[],int n) //随机生成元素取值范围在0到99的数组
void Short(int *p,int n) //用选择法对数组中的元素从小到大排序
void Print(int *p,int n) //在屏幕上输出数组各元素的值(逗号分隔)
#define N (10)
int main()
{
int a[N],b[N],c[N*2],i
srand(time(NULL))
Init(a,N)
Print(a,N)
Short(a,N)
Print(a,N)
Init(b,N)
Print(b,N)
Short(b,N)
Print(b,N)
for(i=0i<N++i)
{
c[i]=a[i]
}
for(i=0i<N++i)
{
c[i+N]=b[i]
}
Print(c,2*N)
Short(c,2*N)
Print(c,2*N)
return 0
}
void Init(int a[],int n)
{
int i
for(i=0i<n++i)
{
*a++=rand()%100
}
}
void Short(int *p,int n)
{
int i,j,t
for(i=0i<n-1++i)
{
for(j=0j<n-i-1++j)
{
if(p[j]>p[j+1])
{
t=p[j]
p[j]=p[j+1]
p[j+1]=t
}
}
}
}
void Print(int *p,int n)
{
int i
for(i=0i<n++i)
{
printf("%d%c",*p++,i<n-1?',':'\n')
}
}
源代码如下:
#include<iostream>
#include<iomanip>
#include<string>
#include<fstream>
#include<stdio.h>
using namespace std
const int maxb=10000 //最多的图书
class book//图书类
{
int tag //删除标记1:已删0:未删
int number //isbn书号
char name[20] //书名
char author[10]//主编
char number2[10]//版次
char position[20]//出版社
char time[20]//出版年
void addbook(int n,char *na,char *au,char *n2,char *da,char *ti,int pr) //增加图书
{
tag=0
number=n
price=pr
strcpy(name,na)
strcpy(author,au)
strcpy(number2,n2)
strcpy(position,da)
strcpy(time,ti)
onshelf=1
}
扩展资料
1、源程序中,很多符号都是成对匹配出现的,为避免遗漏必须配对使用的符号。
2、用花括号括起来的部分,但从程序结构清晰,便于阅读、理解、维护的角度出发,建议在书写程序时应遵循以下规则,以养成良好的编程习惯。
3、一个说明或一条语句占一行,与该结构开始处的左花括号对齐。
int FindSamdData(int *a, int*b, int length){
int i,j
for (i=0,j=0(i<length)&&(j<length))
{
while (*a <*b)//有序排列,挨个比较
{
a++
i++
}
while (*a >*b)
{
b++
j++
}
if (*a == *b) return *a
}
}
int main(void)
{
int a[ ]={1,3,5,7,9,13,15,27,29,37}
int b[ ]={2,4,6,8,10,13,14,27,29,37}
int c
c = FindSamdData(a, b ,sizeof(a))
}
增加出错的程序。出错的最好使用一个单独参数,我为了方便没有增加参数。
//有序数组查找相同数据,数组等长
//*length为0未找到相同数据,
int FindSamdData(int *a, int*b, int *length)
{
int i,j
for (i=0,j=0(i<*length)&&(j<*length))
{
while (*a <*b)//有序排列,挨个比较
{
a++
i++
if (i>=*length)break
}
while (*a >*b)
{
b++
j++
if (j>=*length)break
}
if (*a == *b)
{
*length = 1
return *a
}
}
*length = 0
return 0//
}
//数组不等长
//*al或*bl超出数组长表示出错,
int FindSamdData2(int *a, int*b, int *al, int *bl)
{
int i,j
for (i=0,j=0(i<*al)&&(j<*bl))
{
while (*a <*b)//有序排列,挨个比较
{
a++
i++
if (i>=*al) break
}
while (*a >*b)
{
b++
j++
if (j>=*bl) break
}
if (*a == *b)
{
*al = i
*bl = j
return *a
}
}
*al = i
*bl = j
return 0
}
void main(void)
{
int a[]={1,3,5,7,9,13,15,27,29,37}
int b[]={2,4,6,8,10,13,14,27,29,37}
int la = sizeof(a)
int lb = sizeof(b)
int c
c = FindSamdData(a, b ,&la)
if (la == 0) printf("No same!")
la = sizeof(a)//la会被函数 FindSamdData 修改.
c = FindSamdData2(a, b ,&la, &lb)
if ((la >=sizeof(a)) || (la >=sizeof(a))) printf("No same!")
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)