1,改错
#include <stdio.h>
#include <string.h>
#define N 50
void fun(char a[];int n)
{
int i,j,p;
char t;
for(j=0;j<n;j++)
{
p=j;
for(i=j+1;i<n;i++)
if(a[i]<a[j])
p=i;
t=a[p];
a[j]=a[p];
a[j]=t;
}
}
void main( )
{
char s[N];
int m;
printf("\nplease enter a string:\n");
gets(s);
m=strlen(s);
fun(s[N],m);
printf("排序后的串为:\n");
puts(s);
}
答案 【改错1】 错误 【学生答案】 void fun(char a[];int n) 【参考答案】 void fun(char a[],int n)
============================== 【改错2】 错误 【学生答案】 if(a[i]<a[j]) 【参考答案】 if(a[i]<a[p]) if(a[p]>a[i])
============================== 【改错3】 错误 【学生答案】 a[j]=a[p]; 【参考答案】 a[p]=a[j];
============================== 【改错4】 错误 【学生答案】 fun(s[N],m); 【参考答案】 fun(s,m);
2
#include "stdio.h"
main()
{
int min,a;
scanf("%d",&a);
min=a;
while (a<0 )
{
if(a>min) min=a;
scanf("%d",&a);
}
}
答案 【改错1】 错误 【学生答案】 while (a<0 ) 【参考答案】 while(a>=0)
============================== 【改错2】 错误 【学生答案】 if(a>min) min=a; 【参考答案】 if(a<min) min=a; if(a<=min) min=a; 3,程序设计
#include "stdio.h"
#include"conio.h"
long fun(int k)
{
}
main()
{int m;
printf("Enter m: ");
scanf("%d", &m);
printf("\nThe result is %ld\n", fun(m));
TestFunc();
}
TestFunc()
{
FILE *IN,*OUT;
int s ;
int t;
long o;
IN=fopen("in.dat","r");
if(IN==NULL)
{printf("Read File Error");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{printf("Write File Error");
} for(s=1;s<=5;s++)
{ fscanf(IN,"%d",&t);
o=fun(t);
fprintf(OUT,"%ld\n",o);
}
fclose(IN);
fclose(OUT);
}
答案
【参考代码】
if (k>0)
return(k*fun(k-1));
else if(k==0)
return 1L;
4
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
void fun(int a[], int n , int *max, int *d )
{
}
void NONO ( )
{
FILE *fp, *wf ;
int i, x[20], max , index, n = 10, j ;
fp = fopen("bc06.in","r") ;
if(fp == NULL) {
printf("数据文件bc06.in不存在!") ;
return ;
}
wf = fopen("bc06.out","w") ;
for(i = 0 ; i < 10 ; i++) {
for(j = 0 ; j < n ; j++) fscanf(fp, "%d,", &x[j]) ;
fun( x, n , &max, &index);
fprintf(wf, "Max=%d,Index=%d\n", max, index) ;
}
fclose(fp) ;
fclose(wf) ;
}
main()
{ int i, x[20], max , index, n = 10;
srand(time(0));
for (i=0;i < n;i++) {x[i] = rand()%50; printf("%4d", x[i]) ; }
printf("\n");
fun( x, n , &max, &index);
printf("Max =%5d , Index =%4d\n",max, index );
NONO();
}
答案
int i,base,subscript;
base=a[0];
subscript=0;
for(i=1;i<n;i++) {
if(a[i]>base) {
subscript=i;
base=a[i];
}
}
*max=base;
*d=subscript;
|