1、请编写函数fun,函数的功能是: 移动字符串中的内容,移动的规则如下: 把第1到第m个字符, 平移到字符串的最后, 把第m+1到最后的字符移到字符串的前部。
例如, 字符串中原有的内容为: ABCDEFGHIJK, m的值为3, 则移动后, 字符串中的内容应该是: DEFGHIJKABC。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容, 仅在函数fun的花括号中填入你编写的若干语句。
#include
#include
#define N 80
void fun1(char *w) /* 本函数的功能是将字符串中字符循环左移一个位置 */
{
int i; char t;
t=w[0];
for(i=0;i
w[i]=w[i+1];
w[strlen(w)-1]=t;
}
void fun(char *w, int m) /*可调用fun1函数左移字符 */
{
}
main()
{ char a[N]= "ABCDEFGHIJK";
int m;
printf("The original string:\n");puts(a);
printf("\n\nEnter m: ");scanf("%d",&m);
fun(a,m);
printf("\nThe string after moving:\n");puts(a);
printf("\n\n");
NONO();
}
NONO()
{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */
FILE *rf, *wf ; char a[N] ; int m, i ;
rf = fopen("c:\\test\\in.dat","r") ;
wf = fopen("c:\\test\\out.dat","w") ;
for(i = 0 ; i < 10 ; i++) {
fscanf(rf, "%d %s", &m, a) ;
fun(a, m) ;
fprintf(wf, "%s\n", a) ;
}
fclose(rf) ; fclose(wf) ;
}
2、学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中, 请编写函数fun,它的功能是:把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。
例如,输入的分数是60 69, 则应当把分数在60到69的学生数据进行输出,包含60分和69分的学生数据。主函数中将把60放在low中,把69放在heigh中。
注意: 部分源程序在文件PROG1.C文件中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
#define N 16
typedef struct
{ char num[10];
int s;
} STREC;
int fun( STREC *a,STREC *b,int l, int h )
{
}
main()
{ STREC s[N]={{"GA005",85},{"GA003",76},
{"GA002",69},{"GA004",85},{"GA001",96},
{"GA007",72},{"GA008",64},{"GA006",87},
{"GA015",85},{"GA013",94},{"GA012",64},
{"GA014",91},{"GA011",90},{"GA017",64},
{"GA018",64},{"GA016",72}};
STREC h[N],tt;FILE *out ;
int i,j,n,low,heigh,t;
printf("Enter 2 integer number low & heigh : ");
scanf("%d%d", &low,&heigh);
if ( heigh< low ){ t=heigh;heigh=low;low=t; }
n=fun( s,h,low,heigh );
printf("The student's data between %d--%d :\n",low,heigh);
for(i=0;i
p