资料仅供参考
b[j]是否num的因子,直到b[j]不能整除num */
{ num=num/b[j]; a[i++]=b[j]; } j++; }
*count=i; } int main()
{ int a[20],n,i,count;
printf(\ scanf(\
if(!prime(n)&&n>0) //原题说明:合数不是质数:!prime(n)&&n>0
{ fun(a,n,&count); //3、函数调用时实参出错:a[20],n,count→a,n,&count,其中a和count调用后要求返回
printf(\ //4、连续输出,错误是printf(\
for(i=1;i
else printf(\
资料仅供参考
getch(); return 0; }
【编程题解题思路】
此题解题思路是熟悉结构体的的操作:结构体赋值与普通变量和普通数组赋值与引用类同,惟一区别的是对结构体成员赋值方式是: a.score=90; strcpy(a.num, \,主函数中引用分别为c[i].num,c[i].name,c[i].score。
注意结构体成员与链式结构体成员赋值方式是有区别的,此时“.”改为“->”。
排序采用简单汽泡升序法,不建议采用选择法、双向汽泡法等。
其次是,需要知道库函数所需要的相应的头文件名,下面一一予以注释。
【编程题解答:myf2.c】
#include
#include
资料仅供参考
{ char num[20],name[20]; /*学号、姓名*/ float score; /*课程成绩*/ };
void merge(struct student a[], int ma, struct student b[], int mb, struct student c[])
{ struct student temp; int i,j,k=0;
for(i=0;i
c[k++]=a[i];
for(i=0;i
c[k++]=b[i];
for(i=0;i<=k-1;i++) //采用简单汽泡排序法进行对结构体数组c升序排列
for(j=0;j
if(c[j].score>c[j+1].score) {temp=c[j];c[j]=c[j+1];c[j+1]=temp; }
}
void main() {
struct
student student
a[M]={\
struct
资料仅供参考
b[N]={\,\
struct student c[10]; FILE *fp; int i;
if((fp=fopen(\ { printf(\open the file!\exit (0);}
merge(a,M,b,N,c); for(i=0;i
printf(\ %f\printf(fp, c[i].score);
printf(\number is:1292340\\n\
fclose(fp); /*操作结束,关闭文件fp 书P334 */ getch(); }
\
%f\
相关推荐: