在磁盘上的test1-2.txt文件中放有10个不小于2的正整数,用函数调用方式编写程序。要求实现:
1、在被调函数prime中,判断和统计10个整数中的素数以及个数;
2、在主函数中将全部素数追加到磁盘文件test1-2.txt的尾部,同时输出到屏幕上。
二. 编写程序
1、编写函数void fun(int tt[M][N],int pp[N]),求出二维数组tt每列的最小元素,并依次放入一维数组pp中,二维数组在主函数中赋值;
2、编写main函数,要求实现:从文件test2-2.txt中读出3行4列的数据到tt数组中;调用fun函数;将每列的最小元素输出到屏幕上。
三 编写程序
1、写一create函数int create(int a[],int m),其功能是:根据形参m的值,求出1到m之间(含m)能被3或7整除的所有数,并放入数组a中,该函数返回满足条件的这些数的个数;
2、在main函数中输入一整数m(m<100)并调用create函数,求出满足条件的所有整数;
3、将满足条件的所有整数和整数个数输出到屏幕和文件test3-2.txt中。
----------------解决方案--------------------------------------------------------
希望LZ自己多动动脑筋!
----------------解决方案--------------------------------------------------------
这个.......好麻烦啊
----------------解决方案--------------------------------------------------------
大家发表一下看法撒
----------------解决方案--------------------------------------------------------
不是很难,LZ应该自己多想一想
----------------解决方案--------------------------------------------------------
有谁编出来没有啊?
----------------解决方案--------------------------------------------------------
这个自己做做把,不然以后还是不会做的,我也是新手,但是题目不难.
自己多想想就可以做出来的
----------------解决方案--------------------------------------------------------
那么多的题目,是楼主锻炼的好机会 相信自己
----------------解决方案--------------------------------------------------------
我做了一下:
1。#include <stdio.h>
#include <string.h>
main()
{
int k;
int i,yes,j;
int str[10],a[10]={0};
FILE *fp;
if ((fp=fopen("test1_1.txt","at+"))==NULL)
{
getch();
exit(1);
}
for(i=0;i<10;i++)
fscanf(fp,"%d ",&str[i]);
for (i=0;i<10;i++)
{yes=1;
for (j=2;j<str[i]/2;j++)
if (str[i]%j==0)
{yes=0;break;}
if (yes==1){a[k]=str[i];k++;}
}
for (i=0;a[i]!=0;i++){printf("%d ",a[i]);
fprintf(fp,"%4d",a[i]);}
getch();
}
2。
define N 3
#define M 3
#include <stdio.h>
void fun(int a[M][N],int b[N])
{ int min;
int i,j,k=0;
for (i=0;i<N;i++){
j=0;
min=a[j][i];
for (;j<M;j++)if (min>=a[j][i])min=a[j][i];
b[k]=min;
k++;
}
}
main()
{
int a[M][N],b[N];
int i,j;
FILE *fp;
if((fp=fopen("test2_2.txt","rt"))!=NULL)
{
getch();
exit (1);
}
for (i=0;i<M;i++)
for (j=0;j<N;j++)
fscanf(fp,"%d ",&a[i][j]);
fun(a[M][N],b[N]);
for (j=0;j<N;j++)printf("%3d",b[j]);
}
3。
#include <stdio.h>
int create(int a[],int m)
{
int i=0,j;
for (j=1;j<=m;j++)
if (j%3==0||j%7==0){
*(a+i)=j;
i++;}
}
main()
{ int i;
int m,b[100]={0};
FILE *fp;
if ((fp=fopen("test3_3","w"))==NULL)
{
getch();
exit (1);}
printf("input numbers:");
scanf("%d",&m);
create(b,m);
for (i=0;b[i]!=0;i++){
printf("%4d",b[i]);
fprintf(fp,"%4d",b[i]);
}
getch();
}
----------------解决方案--------------------------------------------------------
3个都编译正确,其中1,3都有正确答案;2没有结果,有谁看看什么原因,帮我改改。
----------------解决方案--------------------------------------------------------