简单的C语言找错
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单的C语言找错相关的知识,希望对你有一定的参考价值。
#include <stdio.h>
#define num 10
#define num2 5
#define num3 15
main()
int t,i,j,p,a[num]=3,8,11,6,5,4,9,12,7,23,b[num2]=24,1,77,10,31,c[num3]=0;
int q,w,e,x,y;
for(i=0;i<num-1;i++) //给第一个数组排序
p=i;
for(j=i+1;j<num;j++)
if(a[p]<a[j])p=j;
t=a[i],a[i]=a[p],a[p]=t;
for(i=0;i<num2-1;i++) //给第二个数组排序
p=i;
for(j=i+1;j<num2;j++)
if(b[p]<b[j])p=j;
t=b[i],b[i]=b[p],b[p]=t;
for(i=0,q=0,w=0;i<=15;i++)
if(w<=4)
if(a[q]>b[w])c[i]=a[q];q=q+1;
elsec[i]=b[w];w=w+1;
else
c[i]=a[q];
q=q+1;
printf("============\n");
for(j=0;j<10;j++)
printf("%4d\n",a[j]);
printf("============\n");
for(j=0;j<5;j++)
printf("%4d\n",b[j]);
printf("============\n");
for(j=0;j<15;j++)
printf("%4d\n",c[j]);
功能是给两个数组分别排序然后再按大小合并到另一个数组中.
输出结果的最后一个是有错的(第二个数组比第一个数组小的数都会输出错误)
最后应该是:
...
...
...
4
3
1
但现在是
4
3
3
...
...
...
4
void main()
void fun1();
int fun2(int a);
void fun3();
void fun4();
//fun1();
fun3();
void fun1()
double s=0;
int n;
int m=1;
printf("输入n的值:");
scanf("%d",&n);
for(int i=1;i<=n;i++)
m=m*i;
s=s+1.0/m;
printf("s=%f",s);
#define num 10
#define num2 5
#define num3 15
void fun3()
int t,i,j,p,a[num]=3,8,11,6,5,4,9,12,7,23,b[num2]=24,99,77,10,31,c[num3]=0;
int q,w,e,x,y;
for(i=0;i<num-1;i++) //给第一个数组排序
p=i;
for(j=i+1;j<num;j++)
if(a[p]<a[j])p=j;
t=a[i],a[i]=a[p],a[p]=t;
for(i=0;i<num2-1;i++) //给第二个数组排序
p=i;
for(j=i+1;j<num2;j++)
if(b[p]<b[j])p=j;
t=b[i],b[i]=b[p],b[p]=t;
printf("============\\n");
for(j=0;j<10;j++)
printf("%4d\\n",a[j]);
printf("============\\n");
for(j=0;j<5;j++)
printf("%4d\\n",b[j]);
for(i=0,q=0,w=0;i<15;i++)
if(a[q]>b[w])c[i]=a[q];q=q+1;
else if(w<=4)c[i]=b[w];w=w+1;
elsec[i]=a[q];q=q+1;
printf("============\\n");
for(j=0;j<15;j++)
printf("%4d\\n",c[j]);
参考技术A 看不懂 不过你把a和b两个数组放在一起 再排序一次 不就得到正确答案了。。。
以上是关于简单的C语言找错的主要内容,如果未能解决你的问题,请参考以下文章