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);