4个回答
展开全部
各种语法错误,这个连编译都不行。
i++是指自加1,后面不能加数字;
最上面的解引用那里估计你括号放错了,*号要在括号外面
数字a和数组b,直接int *i=a;就行,不需要再取地址。
printf中,i是一个整数,不能被解引用。
i++是指自加1,后面不能加数字;
最上面的解引用那里估计你括号放错了,*号要在括号外面
数字a和数组b,直接int *i=a;就行,不需要再取地址。
printf中,i是一个整数,不能被解引用。
追问
- - ,新手才刚刚开始学习。
您方便写个例子,学习学习下
追答
你这个只是简单的合并,就把第二个接在第一个后面,
还是把两个排好序的给归并,保持队列的排序。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这是c++版的
#include<stdio.h>
#include<stdlib.h>
int* arrange(int *p,int m, int *q,int n){
int *p_last = p+m-1;
int *q_last = q+n-1;
int *pc , *result ;
pc = result= (int *)malloc(sizeof(int));
while(p<=p_last&&q<=q_last){
if(*p<=*q) *result =*p++;
else *result = *q++;
result++;
}
while(p<=p_last){
*result++ =*p++;
}
while(q<=q_last){
*result++ =*q++;
}
return pc;
}
int main(){
int a[]={1,2,3,7,8,9};
int m = 6;//a[]中元素的个数
int b[]={4,5,6};
int n = 3;//b[]中元素的个数
int *i = a;
int *j = b;
i = arrange(i,m,j,n);
for(int k = 0;k<m+n;k++){
printf("%d ",*i++);
}
}
#include<stdio.h>
#include<stdlib.h>
int* arrange(int *p,int m, int *q,int n){
int *p_last = p+m-1;
int *q_last = q+n-1;
int *pc , *result ;
pc = result= (int *)malloc(sizeof(int));
while(p<=p_last&&q<=q_last){
if(*p<=*q) *result =*p++;
else *result = *q++;
result++;
}
while(p<=p_last){
*result++ =*p++;
}
while(q<=q_last){
*result++ =*q++;
}
return pc;
}
int main(){
int a[]={1,2,3,7,8,9};
int m = 6;//a[]中元素的个数
int b[]={4,5,6};
int n = 3;//b[]中元素的个数
int *i = a;
int *j = b;
i = arrange(i,m,j,n);
for(int k = 0;k<m+n;k++){
printf("%d ",*i++);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-03-23
展开全部
有较多的错误,以下是正确代码:
#include<stdio.h>
int arrange(int *n,int *m)
{
int i=0,j=0,k;
for(i=0;i<6;i++)
{
if (*(n+i)>*(m+j) && *(n+i)!=0)
{
k=5;
while(k>i)
*(n+k)=*(n+k-1),k--;
*(n+i)=*(m+j);
j++;
}
if(*(n+i)==0)
*(n+i)=*(m+j++);
}
return 0;
}
int main()
{
int a[6]={1,2,5};
int b[3]={4,7,9};
int *i=a;
int *j=b;
int m;
arrange(i,j);
for(m=0;m<6;m++)
printf("%d",a[m]);
return 0;
}
#include<stdio.h>
int arrange(int *n,int *m)
{
int i=0,j=0,k;
for(i=0;i<6;i++)
{
if (*(n+i)>*(m+j) && *(n+i)!=0)
{
k=5;
while(k>i)
*(n+k)=*(n+k-1),k--;
*(n+i)=*(m+j);
j++;
}
if(*(n+i)==0)
*(n+i)=*(m+j++);
}
return 0;
}
int main()
{
int a[6]={1,2,5};
int b[3]={4,7,9};
int *i=a;
int *j=b;
int m;
arrange(i,j);
for(m=0;m<6;m++)
printf("%d",a[m]);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
i++2 这条语句有误吧 你改下i+=2
(*n+d)=.........这里的i 改成d
= =! 你的三目运算用的有点蛋疼
(*n+d)=.........这里的i 改成d
= =! 你的三目运算用的有点蛋疼
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询