vlambda博客
学习文章列表

C语言程序设计(二)


C语言程序设计(二)


😭5

功能:将从键盘上输入的每个单词的第一个字母转换为

      大写字母,输入时各单词必须用空格隔开,用'.'

      结束输入。

 

------------------------------------------------*/

 

#include "stdio.h"

#include "string.h"

 

int fun(char *c,int status)    

{

  /*********Begin**********/

 

  /**********  End **********/    

}    

main()    

{    

  int flag=1;

  void TestFunc( );    

  char ch;    

  printf("请输入一字符串,用点号结束输入!\n") ;    

  do    

  {    

    ch=getchar();    

    flag=fun(&ch, flag);    

    putchar(ch);    

  }while(ch!='.');

  printf("\n");

  TestFunc();    

}    

void TestFunc( )    

{    

  char s1[81], ch;    

  int i, flag = 1;    

  FILE *rf, *wf ;    

  rf = fopen("in.dat","r") ;

  wf = fopen("out.dat","w") ;

  fgets(s1, 80, rf) ;    

  for(i = 0 ; i < strlen(s1);i++)

  {    

    ch = s1[i] ;    

    flag = fun(&ch, flag);    

    s1[i] = ch ;    

  }    

  fprintf( wf,"%s", s1);    

  fclose(rf) ;    

  fclose(wf) ;    

}  

【参考代码】

 

if (*c== ' ') return 1;

else

{    

if(status && *c <= 'z' && *c >= 'a')

*c += 'A' - 'a';

return 0;

}

 

6

【程序设计】

--------------------------------------------------

 

功能:求不大于lim的所有素数并放在aa数组中,该函数返回

      所求出素数的个数。

求小于等于lim的所有素数并放在aa数组中,该函数返回

      所求出素数的个数

 

 

------------------------------------------------*/

 

#include "stdio.h"

#include "conio.h"

#define MAX 100

 

int fun(int lim,int aa[MAX])

{

  /*********Begin**********/

 

 

 

 

 

 

  /**********  End **********/

}

main()

{

  int limit,i,sum;

  int aa[MAX];

  void NONO();

  printf("Please InputaInteger:");

 scanf("%d",&limit);

  sum=fun(limit,aa);

  for(i=0;i<sum;i++){

    if(i%10==0&&i!=0)printf("\n");

   printf("%5d",aa[i]);

   

  }

  NONO();

 

}

void NONO()    

{    

  int i,j,array[100],sum,lim;

  FILE *rf, *wf ;    

  rf = fopen("in.dat","r") ;

  wf = fopen("out.dat","w") ;

  for (j=0; j <= 5; j++)

  {

    fscanf(rf, "%d",&lim);

    sum=fun(lim,array);

    for(i=0;i<sum;i++)

      fprintf(wf,"%7d", array[i]);

    fprintf(wf, "\n");    

  }    

  fclose(rf);

  fclose(wf);

参考代码】

 

 int n=0,i,j;

 for(i=2;i<=lim;i++)

    {for(j=2;j<i;j++)

      if(i%j==0) break;

      if(j==i) aa[n++]=i;

     }

     return n;

 

 

7

【程序设计】

--------------------------------------------------

 

功能:求不大于lim的所有素数并放在aa数组中,该函数返回

      所求出素数的个数。

 

------------------------------------------------*/

 

#include "stdio.h"

#include "conio.h"

#define MAX 100

 

int fun(int lim,int aa[MAX])

{

  /*********Begin**********/

 

 

 

 

 

 

  /**********  End **********/

}

main()

{

  int limit,i,sum;

  int aa[MAX];

  void NONO();

  printf("Please InputaInteger:");

 scanf("%d",&limit);

  sum=fun(limit,aa);

  for(i=0;i<sum;i++){

    if(i%10==0&&i!=0)printf("\n");

   printf("%5d",aa[i]);

   

  }

  NONO();

 

}

void NONO()    

{    

  int i,j,array[100],sum,lim;

  FILE *rf, *wf ;    

  rf = fopen("in.dat","r") ;

  wf = fopen("out.dat","w") ;

  for (j=0; j <= 5; j++)

  {

    fscanf(rf, "%d",&lim);

    sum=fun(lim,array);

    for(i=0;i<sum;i++)

      fprintf(wf,"%7d", array[i]);

    fprintf(wf,"\n");    

  }    

  fclose(rf);

  fclose(wf);

}

【参考代码】

 

 int n=0,i,j;

 for(i=2;i<=lim;i++)

    {for(j=2;j<i;j++)

      if(i%j==0) break;

      if(j==i) aa[n++]=i;

     }

     return n;

 

/*------------------------------------------------------

8

 

【程序设计】

--------------------------------------------------

 

功能:统计出若干个学生的平均成绩,最高分以及得最高

      分的人数。

例如:输入10名学生的成绩分别为 92 87 68 56 92

      84 67 75 92 66 则输出平均成绩为77.9

      最高分为92,得最高分的人数为3人。

 

------------------------------------------------*/

 

#include "stdio.h"

 

float max=0;

int j=0;

 

float fun(float array[],int n)

{

 

  /*********Begin**********/

 

 

 

 

 

 

  /**********  End **********/

 

}

 

TestFunc()

{

  FILE *IN,*OUT;

  float iIN[10],iOUT;

  int iCOUNT;

 IN=fopen("in.dat","r");

  if(IN==NULL)

  {

    printf("Please VerifyThe Currernt Dir..It May Be Changed");

  }

 OUT=fopen("out.dat","w");

  if(OUT==NULL)

  {

    printf("Please VerifyThe Current Dir.. It May Be Changed");

  }

 for(iCOUNT=0;iCOUNT<10;iCOUNT++)

   fscanf(IN,"%f",&iIN[iCOUNT]);

  iOUT=fun(iIN,10);

  fprintf(OUT,"%f%f\n",iOUT,max);

  fclose(IN);

  fclose(OUT);

}

main(  )

{

  float  a[10],ave;

  int i=0;

  for(i=0;i<10;i++)

   scanf("%f",&a[i]);

  ave=fun(a,10);

 printf("ave=%f\n",ave);

 printf("max=%f\n",max);

 printf("Total:%d\n",j);

  TestFunc();

}

 

 

【参考代码】

 

int i;float sum=0,ave;

 max=array[0];

for(i=0;i<n;i++)

{  if(max<array [i]) max=array[i];

        sum=sum+array [i];  }

      ave=sum/n;

     for(i=0;i<n;i++)

 if(array [i]==max) j++;

return(ave);