C语言程序设计大题1

/*------------------------------------------------
【程序设计】
--------------------------------------------------

题目:将一批数中小于平均值的数放到一个新数组中。
例如:n值为6,6个数为:1 2 3 4 5 6,则小于平均值的个数为3。

--------------------------------------------------
注意:部分源程序给出如下。请勿改动主函数
      main和其它函数中的任何内容,仅在函
      数的花括号中填入所编写的若干语句。
*********Begin**********和**********  End  **********不可删除



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


#include<stdio.h>
void  TestFunc(); 



int average_num(double a[],int n,double b[])
{
  /*********Begin**********/
  
  
  
  
  
  
  /**********  End  **********/
}


main()
{
  double a[100],b[100];  int n,i,num;
  printf("input n:");
  scanf("%d",&n);
  printf("input %d data:\n",n);
  for(i=0;i<n;i++)
    scanf("%lf",&a[i]);
  num=average_num(a,n,b);
  printf("the num is:%d\n",num);
  for(i=0;i<num;i++)
   printf("%lf  ",b[i]);
  
  TestFunc();
}

void TestFunc()
{
  FILE *IN,*OUT;
  int n;
  double i[10],b[10];
  int o;
  IN=fopen("in.dat","r");
  if(IN==NULL)
  {
    printf("Read FILE Error");
  }
  OUT=fopen("out.dat","w");
  if(OUT==NULL)
  {
    printf("Write FILE Error");
  }
  for(n=0;n<5;n++)
  {    
    fscanf(IN,"%lf",&i[n]);
  }
  o=average_num(i,5,b);
  fprintf(OUT,"%d\n",o);
  fclose(IN);
  fclose(OUT);
}

答案

int i,m=0;
  double avg=0;
  for(i=0;i<n;i++)
	  avg+=a[i]/n;
   for(i=0;i<n;i++)
	  if(avg>a[i])
		  b[m++]=a[i];
	
  return m;

2

/*------------------------------------------------
【程序设计】
--------------------------------------------------

功能:将主函数中输入的字符串反序存放。
例如:输入字符串"abcdefg",则应输出"gfedcba"。
*********Begin**********和**********  End  **********不可删除


------------------------------------------------*/
#include "stdio.h"
#include "string.h"
#include "conio.h"
#define N 81

void fun(char *str,int n)
{                
  
  /*********Begin**********/
  
  
  
  
  
  
  /**********  End  **********/
  
}
TestFunc()
{
  FILE *IN,*OUT;
  char sIN[20],*sOUT;
  int iLENGTH;
  IN=fopen("in.dat","r");
  if(IN==NULL)
  {
    printf("Please Verify The Currernt Dir..It May Be Changed");
  }
  OUT=fopen("out.dat","w");
  if(OUT==NULL)
  {
    printf("Please Verify The Current Dir.. It May Be Changed");
  }
  fscanf(IN,"%s",sIN);
  iLENGTH=strlen(sIN);
  sOUT=sIN;
  fun(sIN,iLENGTH);
  fprintf(OUT,"%s\n",sOUT);
  fclose(IN);
  fclose(OUT);
} 
main()
{
  char s [N];
  int l;
  printf("input a string:");gets(s);
  l=strlen(s);
  fun(s,l);
  printf("The new string is :");puts(s);
  TestFunc();
}

答案

int i,j;
 char c;
for(i=0,j=n-1;i<j;i++,j--)  /*或者for(i=0,j=n-1;i<n/2;i++,j--)*/
{c=*(str+i);
*(str+i)=*(str+j);
*(str+j)=c;}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值