高分求助,一段C语言程序(追加100分)
题目:从键盘上读取一些无序数,把它存放在文件夹中,然后从文件夹中把这些无序数读出,进行插入法排序,最终输出结果。voidcrfpx(int*num,n)此段错误:说明语法...
题目:从键盘上读取一些无序数,把它存放在文件夹中,然后从文件夹中把这些无序数读出,进行插入法排序,最终输出结果。
void crfpx(int *num,n) 此段错误:说明语法错误
{
int temp;
int i,j,k;
int flag;
for(i=1;i {
temp=num[i];
flag=0;
for(j=0;j {
if(temp {
for(k=i-1;k>=j;k--)
{
num[k+1]=num[k];
}
num[j]=temp;
break;
}
}
}
puts("排序后:");
for(i=0;i printf("%5d",num[i]);
}
main( )
{
FILE *fp;
int a[80],b[80],i,j;
if((fp=fopen("test","w"))==NULL) /* 以写方式打开文本文件 */
{printf("cannot open file.\n");
exit(1);
}
i=0;
for(;;i++)
{ fscanf(stdin,"%d,",&a[i]); /* 从标准输入设备(键盘)上读取数据,以","号格开,-1结束 */
fprintf(fp,"%d,",a[i]); /* 以格式输出方式写入文件 */
if a[i] == -1
break;
}
fclose(fp); /* 写文件结束关闭文件 */
if((fp=fopen("test","r"))==NULL) /* 以读方式打开文本文件 */
{printf("cannot open file.\n");
exit(1);
}
for(j=0;j { fscanf(fp,"%d,",&b[i]); /* 以格式输入方式从文件读取数据 */
fprintf(stdout,"%d,",b[i]); /* 将数据显示到标准输出设备上 */
fclose(fp); /* 读文件结束关闭文件 */
}
crfpx(b,j)
}
把n修改了一下,又出现了14个错误。。。请问怎么弄。。。 展开
void crfpx(int *num,n) 此段错误:说明语法错误
{
int temp;
int i,j,k;
int flag;
for(i=1;i {
temp=num[i];
flag=0;
for(j=0;j {
if(temp {
for(k=i-1;k>=j;k--)
{
num[k+1]=num[k];
}
num[j]=temp;
break;
}
}
}
puts("排序后:");
for(i=0;i printf("%5d",num[i]);
}
main( )
{
FILE *fp;
int a[80],b[80],i,j;
if((fp=fopen("test","w"))==NULL) /* 以写方式打开文本文件 */
{printf("cannot open file.\n");
exit(1);
}
i=0;
for(;;i++)
{ fscanf(stdin,"%d,",&a[i]); /* 从标准输入设备(键盘)上读取数据,以","号格开,-1结束 */
fprintf(fp,"%d,",a[i]); /* 以格式输出方式写入文件 */
if a[i] == -1
break;
}
fclose(fp); /* 写文件结束关闭文件 */
if((fp=fopen("test","r"))==NULL) /* 以读方式打开文本文件 */
{printf("cannot open file.\n");
exit(1);
}
for(j=0;j { fscanf(fp,"%d,",&b[i]); /* 以格式输入方式从文件读取数据 */
fprintf(stdout,"%d,",b[i]); /* 将数据显示到标准输出设备上 */
fclose(fp); /* 读文件结束关闭文件 */
}
crfpx(b,j)
}
把n修改了一下,又出现了14个错误。。。请问怎么弄。。。 展开
4个回答
展开全部
把错误贴出来我看看(算了,你的错太多了,下面是修该好的程序,不懂发消息问我)
#include <stdio.h>
#include <stdlib.h> //不包含这个头文件,exit()则无定义
void
crfpx(int *num, int n)
{
int val;
int i, j, k;
for (i = 1; i < n; i++) {
val = num[i];
for (j = i-1; j >=0 && num[j] > val; j--)
num[j+1] = num[j];
num[j+1]=val;
}
puts("Sorted: ");
for (i = 0; i < n; i++)
printf("%5d", num[i]);
putchar('\n');
}
int
main(void)
{
FILE *fp;
int a[80], b[80], i, j;
if ((fp=fopen("text", "w")) == NULL) { /* 以写方式打开文本文件 */
printf("cannot open file.\n");
exit(1);
}
for(i = 0; ; i++) {
fscanf(stdin, "%d,", &a[i]); /* 从标准输入设备(键盘)上读取数据,以","号格开,-1结束 */
fprintf(fp, "%d,", a[i]); /* 以格式输出方式写入文件 */
if (a[i] == -1)
break;
}
fclose(fp); /* 写文件结束关闭文件 */
if ((fp=fopen("text", "r")) == NULL) { /* 以读方式打开文本文件 */
printf("cannot open file.\n");
exit(1);
}
for (j = 0; ; j++) {
fscanf(fp, "%d,", &b[j]); /* 以格式输入方式从文件读取数据 */
fprintf(stdout, "%d,", b[j]); /* 将数据显示到标准输出设备上 */
if (b[j] == -1)
break;
}
fclose(fp); /* 读文件结束关闭文件 */
printf("%d\n", j);
crfpx(b, j);
return 0;
}
#include <stdio.h>
#include <stdlib.h> //不包含这个头文件,exit()则无定义
void
crfpx(int *num, int n)
{
int val;
int i, j, k;
for (i = 1; i < n; i++) {
val = num[i];
for (j = i-1; j >=0 && num[j] > val; j--)
num[j+1] = num[j];
num[j+1]=val;
}
puts("Sorted: ");
for (i = 0; i < n; i++)
printf("%5d", num[i]);
putchar('\n');
}
int
main(void)
{
FILE *fp;
int a[80], b[80], i, j;
if ((fp=fopen("text", "w")) == NULL) { /* 以写方式打开文本文件 */
printf("cannot open file.\n");
exit(1);
}
for(i = 0; ; i++) {
fscanf(stdin, "%d,", &a[i]); /* 从标准输入设备(键盘)上读取数据,以","号格开,-1结束 */
fprintf(fp, "%d,", a[i]); /* 以格式输出方式写入文件 */
if (a[i] == -1)
break;
}
fclose(fp); /* 写文件结束关闭文件 */
if ((fp=fopen("text", "r")) == NULL) { /* 以读方式打开文本文件 */
printf("cannot open file.\n");
exit(1);
}
for (j = 0; ; j++) {
fscanf(fp, "%d,", &b[j]); /* 以格式输入方式从文件读取数据 */
fprintf(stdout, "%d,", b[j]); /* 将数据显示到标准输出设备上 */
if (b[j] == -1)
break;
}
fclose(fp); /* 读文件结束关闭文件 */
printf("%d\n", j);
crfpx(b, j);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
修改好的程序如下:
#include <stdio.h>
#include <stdlib.h>
void crfpx(int *num,int n) //此段错误:说明语法错误
{
int temp;
int i,j,k;
for(i=1;i<n;i++)
{
temp=num[i];
for(j=0;j<i;j++)
{
if(temp<num[j])
{
for(k=i-1;k>=j;k--)
{
num[k+1]=num[k];
}
num[j]=temp;
break;
}
}
}
puts("排序后:");
for(i=0;i<n;i++)
{
printf("%5d ",num[i]);
}
}
void main()
{
int a[80]={0},b[80]={0},i,j;
FILE *fp;
if((fp=fopen("test","w"))==NULL) /* 以写方式打开文本文件 */
{
printf("cannot open file.\n");
exit(1);
}
for(i=0;;i++)
{
fscanf(stdin,"%d,",&a[i]); /* 从标准输入设备(键盘)上读取数据,以","号格开,-1结束 */
fprintf(fp,"%d,",a[i]); /* 以格式输出方式写入文件 */
if (a[i] == -1)
break;
}
fclose(fp); /* 写文件结束关闭文件 */
if((fp=fopen("test","r"))==NULL) /* 以读方式打开文本文件 */
{
printf("cannot open file.\n");
exit(1);
}
for(j=0;j<i;j++)
{
fscanf(fp,"%d,",&b[j]); /* 以格式输入方式从文件读取数据 */
fprintf(stdout,"%d,",b[j]); /* 将数据显示到标准输出设备上 */
}
fclose(fp); /* 读文件结束关闭文件 */
crfpx(b,i);
}
该程序调试过,完全正确:
输入: 1 2 3 -1
输出: 1 2 3
输入: 3 2 1 -1
输出: 1 2 3
#include <stdio.h>
#include <stdlib.h>
void crfpx(int *num,int n) //此段错误:说明语法错误
{
int temp;
int i,j,k;
for(i=1;i<n;i++)
{
temp=num[i];
for(j=0;j<i;j++)
{
if(temp<num[j])
{
for(k=i-1;k>=j;k--)
{
num[k+1]=num[k];
}
num[j]=temp;
break;
}
}
}
puts("排序后:");
for(i=0;i<n;i++)
{
printf("%5d ",num[i]);
}
}
void main()
{
int a[80]={0},b[80]={0},i,j;
FILE *fp;
if((fp=fopen("test","w"))==NULL) /* 以写方式打开文本文件 */
{
printf("cannot open file.\n");
exit(1);
}
for(i=0;;i++)
{
fscanf(stdin,"%d,",&a[i]); /* 从标准输入设备(键盘)上读取数据,以","号格开,-1结束 */
fprintf(fp,"%d,",a[i]); /* 以格式输出方式写入文件 */
if (a[i] == -1)
break;
}
fclose(fp); /* 写文件结束关闭文件 */
if((fp=fopen("test","r"))==NULL) /* 以读方式打开文本文件 */
{
printf("cannot open file.\n");
exit(1);
}
for(j=0;j<i;j++)
{
fscanf(fp,"%d,",&b[j]); /* 以格式输入方式从文件读取数据 */
fprintf(stdout,"%d,",b[j]); /* 将数据显示到标准输出设备上 */
}
fclose(fp); /* 读文件结束关闭文件 */
crfpx(b,i);
}
该程序调试过,完全正确:
输入: 1 2 3 -1
输出: 1 2 3
输入: 3 2 1 -1
输出: 1 2 3
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
void crfpx(int *num,n)中的形参n没有声明类型.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
确定程序没贴错? 好几处for语句不完整。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询