执行C语言程序时显示已停止工作

#include<stdio.h>#include<stdlib.h>#include<math.h>intcombine(float*a,float*b,intm,in... #include<stdio.h>
#include<stdlib.h>
#include<math.h>

int combine(float *a,float *b,int m,int s,char c);
void compare(float f1,float f2,float l1,float l2,int *q,int *p);
int residual_sequence_rearrange(float *a,int c1,char choice_compare);

int main(void)
{
float a[10];
int i,c1,c2;
char choice_compare;
choice_compare='a';

c1=10;

printf("Enter a[10]:");

for(i=0;i<c1;i++)
scanf("%f",&a[i]);

c2=residual_sequence_rearrange(a,c1,choice_compare);

printf("c2 is %d\n",c2);

for(i=0;i<c2;i++)
printf("%f\n",a[i]);

return 0;

}

int residual_sequence_rearrange(float *a,int c1,char choice_compare)
{
double max;
int i,maxi,c2;
float c[10000];

max=fabs(*a);
for(i=1;i<c1;i++){
if(fabs(*(a+i))>max){
max=fabs(*(a+i));
maxi=i;
}
}

for(i=0;i<=maxi;i++)
*(c+i)=*(a+i);

for(i=0;i<(c1-maxi);i++)
*(a+i)=*(a+maxi+i);

c2=combine(a,c,(c1-maxi-1),maxi,choice_compare);

return c2;

}

int combine(float *a,float *b,int m,int s,char c)
{
float f1,f2,l1,l2;
int i,c2;

l1=*(a+m);
l2=*(a+m-1);
f1=*b;
f2=*(b+1);

if(c=='a'){
p=0;
q=1;
}
else if(c=='b'){
compare(f1,f2,l1,l2,&q,&p);
}

i=0;
while((i+p)<=s){
*(a+m+q+i)=*(b+p+i);
i++;
}

if(q==0){
if(p==0)
c2=m+s+1;
else
c2=m+s;
}
else{
if(p==0)
c2=m+s+2;
else
c2=m+s+1;
}

return c2;

}

void compare(float f1,float f2,float l1,float l2,int *q,int *p)
{
if(l1>l2){
if(f1>f2){
if(f1>l1){
*q=0;
*p=0;
}
else{
*q=1;
*p=1;
}
}
else{
if(f1>=l1){
*q=0;
*p=1;
}
else{
*q=1;
*p=0;
}
}
}
else{
if(f1>f2){
if(f1>l1){
*q=1;
*p=0;
}
else{
*q=0;
*p=1;
}
}
else{
if(f1>=l1){
*q=1;
*p=1;
}
else{
*q=0;
*p=0;
}
}
}

}
这个程序的大概意思是:将数列(程序中的数为10个)从绝对值最大点处截开,再首尾相接,形成新的数列。
展开
 我来答
匿名用户
2013-09-01
展开全部
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
在头文件的下面增加这一语句:
int q,p;

你程序的功能和结果没有验证

更多追问追答
追问
不太明白你说的意思,能不能详细解释下
这个程序可以输出正确的计算结果,但是在输出结果后没有显示“Press any key to continue”,而是显示程序已停止工作
追答
你把出错的图片贴出来
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hobbye501
2013-09-02 · TA获得超过247个赞
知道小有建树答主
回答量:709
采纳率:100%
帮助的人:240万
展开全部
是什么停止工作呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我爱编码网
2013-09-01
知道答主
回答量:32
采纳率:0%
帮助的人:16万
展开全部
p和q没定义啊
追问
定义p、q后,还是显示已停止工作
这个程序可以输出正确的计算结果,但是在输出结果后没有显示“Press any key to continue”,而是显示程序已停止工作
追答
得到结果就可以了,不要追究这个了。你用的什么编译器?可以试下www.52bianma.com上的在线编译器,看看结果是什么?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式