2009-12-02(二)

1./*请编写一个函数fun,它的功能是:找出一维数组元素中最大的值和它所在的下标,最大值和它的下标通过形参返回。数组中的值随机赋予。*/
#include"stdio.h"
#include"stdlib.h"
#include "time.h"
void fun(int a[],int n,int *max,int *d)
{
 int i,j;
 int temp;
 *max=a[0];
 for(i=1;i<=n;i++)
 {
  if(*max   {*max=a[i];
  *d=i;}

 }

}
void main()
{
 int i,x[20],max,index,n=5;
 srand((unsigned)time(NULL));
 for(i=0;i<=n;i++)
 {
  x[i]=rand()%50;
  printf("%4d",x[i]);
  /*输出一个随机数*/
 }
 printf("/n");
 fun(x,n,&max,&index);
 printf("Max=%5d,Index=%4d/n",max,index);
 getch();
}
2./*请编写函数fun,对长度为7个字符的字符串,除首尾字符外,将其余5个字符按ASCII码值升序排列*/
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
#include "conio.h"
#include "ctype.h"
void fun(char *s,int num)
{
 int i,j;
 char t;
 for(i=1;i  {
 for(j=i+1;j  {
   if(s[i]>s[j])
   { t=s[j];
     s[j]=s[i];
     s[i]=t;
   }
 }
 }
}
void main()
{
 char s[10];
 system("CLS");
 printf("输入7个字符的字符串:/n");
 gets(s);
 fun(s,7);
 printf("/n%s",s);
 getch();
}
3./*编写函数int fun(int lim,int aa[MAX]),该函数的功能是求小于或等于lim的所有素数并放入aa数组中,该函数返回所求出的素数的个数*/
#include "stdio.h"
#include "conio.h"
#include "stdlib.h"
#define MAX 100
int fun(int lim,int aa[MAX])
{
 int i,j,k=0;
 aa[0]=2;
 for(i=2;i<=lim;i++)
 {
  for(j=2;j   {if(i%j==0)
   break;
   else
   aa[++k]=i;
   break;
  }

 }
 return k+1;
}
void main()
{
 int limit,i,sum;
 int aa[MAX];
 system("CLS");
 printf("输入一个整数");
 scanf("%d",&limit);
 sum=fun(limit,aa);
 printf("素数的个数是:%d/n",sum);
 printf("素数分别是:");
 for(i=0;i<=sum;i++)
 {
  if(i%10==0&&i!=0)
  printf("/n");
  printf("%5d",aa[i]);
 }
 getch();
}
4./*假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串尾部的*号全部删除,前面和中间的*号不删除。*/
#include"stdio.h"
#include"conio.h"
void fun(char *a)
{  int i=0,j;
 while (a[i]!='/0')
 {
  i++;
 }
 j=i-1;
 while(a[j]=='*')
 {
  j--;
 }
 a[j+1]='/0';

}
void main()
{
 char s[81];
 printf("Enter a string:/n");
 gets(s);
 fun(s);
 printf("The string after deleted :/n");
 puts(s);
 getch();
}
5./*请编写函数fun,其功能是:将s所指字符串中下标为偶数的字符删除,串中剩余字符形成的新串放入t所指的数组中。*/
#include "stdio.h"
#include "string.h"
#include "conio.h"
#include "stdlib.h"
void fun(char *s,char t[])
{
int i,j=0;
for(i=0;s[i]!='/0';i++)
{
 if(i%2==0)
 {continue; }
 else
 {t[j++]=s[i]; }
}
t[j]='/0';
}
void main()
{
 char s[100],t[100];
 system("CLS");
 printf("/nPlease enter string s:");
 scanf("%s",s);
 fun(s,t);
 printf("/nThe result is: %s /n",t);
 getch();
}

6./*学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:函数返回指定学号的学生的数据,指定的序号在主函数中输入。若没找到指定的学号,在结构体变量中给学号置空串,给成绩置-1,作为函数值返回(用于字符串比较的函数是strcmp)*/
#include "string.h"
#include "stdio.h"
#include "stdlib.h"
#define N 16
typedef struct
{
 char num[10];
 int s;

}STREC;
STREC fun(STREC *a,char *b)
{
int i;
STREC str={"/0",-1};
for(i=0;i {
 if(strcmp(a[i].num,b)==0)
 str=a[i];
}
return str;
}
void main()
{
 STREC s[N]={{"05",85},{"03",76},{"02",69},{"04",85},{"01",91},{"07",72},{"08",64},{"06",87},{"15",85},{"13",91},{"12",64},{"14",91},{"11",91},{"17",64},{"18",64},{"16",72}};
 STREC h;
 char m[10];
 int i;
 printf("The original data:/n");
 for(i=0;i  {
  if(i%4==0)
  printf("/n");
  printf("%s %3d||",s[i].num,s[i].s);

 }
 printf("/n/nEnter the number:");
 gets(m);
 h=fun(s,m);
 printf("The data:");
 printf("/n%s %4d/n",h.num,h.s);
 printf("/n");
 getch();

}

 

你可能感兴趣的:(2009-12-02(二))