重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
你犯了一个很低级的错误,你这个变量C没有初始化空间,这个c只是一个指针,没有存放数据的地方,把这个*c改为c[100]后,你在跑这个程序肯定正确。这个函数写的还是很有水平的,值得学习,最好函数的前两个变量前加上const表示的是只读数据,利于安全
“专业、务实、高效、创新、把客户的事当成自己的事”是我们每一个人一直以来坚持追求的企业文化。 创新互联公司是您可以信赖的网站建设服务商、专业的互联网服务提供商! 专注于网站制作、成都做网站、软件开发、设计服务业务。我们始终坚持以客户需求为导向,结合用户体验与视觉传达,提供有针对性的项目解决方案,提供专业性的建议,创新互联建站将不断地超越自我,追逐市场,引领市场!
为便于测试,给你编了一个a[10],b[10],c[10]的符合题意的程序,
完全符合题意,需作如下改动:
把
“int a[10]={1,2,8,4,0,19,32,6,5,23};
int b[10]={3,21,45,15,26,67,9,5,7,11};”
两句改成“int a[100]={1,2,8,4,0,19,32,6,5,23,...,98,55};
int b[100]={3,21,45,15,26,67,9,5,7,11,...,33,66};
”
给数组a[100]和b[100]添加到100个初始值,
把程序中有10和20出现的地方分别改成100和200
#includestdio.h
main()
{
int a[10]={1,2,8,4,0,19,32,6,5,23};
int b[10]={3,21,45,15,26,67,9,5,7,11};
int i,c[20];
printf("排序后的a数组:\n");
sort(a);
printf("排序后的b数组:\n");
sort(b);
printf("合并后的c数组:\n");
join(a,b,c);
}
sort(int x[])
{
int i,j,k,temp;
for(i=0;i10;i++)
{k=i;
for(j=i+1;j10;j++)
{
if(x[j]x[k])k=j;
}
if(k!=i)
{
temp=x[i];
x[i]=x[k];
x[k]=temp;
}
}
for(i=0;i10;i++)printf("%3d",x[i]);
printf("\n");
}
join(int x[],int y[],int z[])
{
int i,j,k;
for(k=0;k20;)
{
for(i=0,j=0;i10,j10;)
{
if(x[i]=y[j])z[k++]=x[i++];
else z[k++]=y[j++];
}
}
for(i=0;i20;i++)printf("%3d",z[i]);
printf("\n");
}
自然连接(Natural join)是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。
R表 S表
A B C D B E
1 a 3 2 c 7
2 b 6 3 d 5
3 c 7 1 a 3 自然连接怎么连接?
一、自然连接是第一步R×S结果是:
A B C D B E
1 a 3 2 c 7
1 a 3 3 d 5
1 a 3 1 a 3
2 b 6 2 c 7
2 b 6 3 d 5
2 b 6 1 a 3
3 c 7 2 c 7
3 c 7 3 d 5
3 c 7 1 a 3
就是用R表中的每一项乘以S表中的每一项。
二、选择R.B=S.B的记录:
R.A R.B R.C S.D S.B S.E
1 a 3 1 a 3
3 c 7 2 c 7
三、然后去掉相同且值也相同的B属性,最后R∞S的值为:
A B C D E
1 a 3 1 3
3 c 7 2 7
最后不知道那个自然连接的符号输的对不。。
可以使用string.h头文件中的strcat函数 char *a="123"; char *b = "abc"; strcat(a,b)即可,更多的字符串操作可以看一下string.h头文件中 有好多封好的, 如果不想用的话就可以自己写一个函数
函数内容:1.获取两个字符串的总长度,如total_len=len1+len2然后申请一个动态的数组大小为total_len 然后把字符串中的内容依次放进去就可以了。
char*join(char*s1,char*s2){
int i=0,j=0;
for(;s1[i];i++);
for(;s2[j];) s1[i++]=s2[j++];
s1[i]=0;
return s1;
}