}
if(flag==0)
{
y[j++]=x[i];
}
else
{
x[w++]=x[i];
}
}
return j;
}
int main()
{
int a[6]={213,543,45,234,4231,7653}, b[6],m,i,j;
m=seperate(a,6,b);
for(i=0;i
{
printf("%d ",b[i]);
}
FILE *fp;
fp=fopen("myf2.out","w+");
for(j=0;j
{
fprintf(fp,"%d ",b[j]);
}
fclose(fp);
return 0;
}
if(flag==0)
{
y[j++]=x[i];
}
else
{
x[w++]=x[i];
}
把你这段代码改成:
if(flag != 1) {
y[j++] = x[i]
}
另外,刚进for 循环的时候将flag = 0; 初始化一下
为什么没有输入?调用了吗?
帮你写了一个,仅供参考!谢谢!
#include<stdio.h>
#include<stdlib.h>
int seperate(int x[], int m, int y[])
{
char tmp[7];
char *p = tmp;
int j = 0, k = 0;
char max = '9';
int len;
for (int i = 0; i < m; i++)
{
sprintf(tmp, "%d", x[i]);
len = strlen(tmp);
max = p[0];
k += 1;
while (p[k] != '\0')
{
if (p[k] < max)
{
max = p[k];
k++;
}
else
{
break;
}
}
if (k == len)
{
y[j++] = atoi(tmp);
}
k = 0;
}
return j;
}
int main()
{
int a[8] = { 987, 89, 123, 652, 521, 12, 96, 845 };
int b[8];
int m;
char outf[] = "myf2.out";
char str[] = "我的准考证号:123456";
m = seperate(a, 8, b);
FILE *out = fopen(outf, "w");
if (!out)
return -1;
printf("a array: ");
fprintf(out, "a array: ");
for (int i = 0; i < 8; i++)
{
printf("%d ", a[i]);
fprintf(out, "%d ", a[i]);
}
printf("\nb array: ");
fprintf(out, "\n");
fprintf(out, "b array: ");
for (int i = 0; i < m; i++)
{
printf("%d ", b[i]);
fprintf(out, "%d ", b[i]);
}
fprintf(out, "\n");
fputs(str, out);
fclose(out);
return 0;
}