学好C语言,走遍宇宙都不怕

函数fun的功能是:求ss所指字符串数组中长度最短的字符串所在的行下标作为函数值返回,并把其串长放在形参所指的变量中。ss所指字符串数组中有M个字符串,且串长小于N。

#include    <stdio.h>
#include    <string.h>
#define    M    5
#define    N    20
int fun(char  (*ss)[N], int  *n)
{  int  i, k=0, len= N;

   for(i=0; i<M; i++)      /*ss所指字符串数组中共有M个字符串,所以for循环语句循环条件是i<M*/
   {  len=strlen(ss[i]);
     if(i==0)  *n=len;

     if(len  <  *n)    /*要求求长度最短的字符串,*n中存放的是已知字符串中长度最短的字符串的长度,这里将当前字符串长度与*n比较,若小于*n,则将该长度值赋给*n,因此if语句的条件表达式为len<*n。*/

     {  *n=len;
        k=i;
     }
   }

   return(k);/*将最短字符串的行下标作为函数值返回,变量k储存行下标的值*/
}
main()
{  char  ss[M][N]={"shanghai","guangzhou","beijing","tianjing","chongqing"};
   int  n,k,i;
   printf("\nThe original strings are :\n");
   for(i=0;i<M;i++)puts(ss[i]);
   k=fun(ss,&n);
   printf("\nThe length of shortest string is :  %d\n",n);
   printf("\nThe shortest string is :  %s\n",ss[k]);
}

函数fun的功能是:将tt所指字符串中的小写字母全部改为对应的大写字母,其他字符不变。



#include <stdio.h>
#include <string.h>
char* fun( char tt[] )
{
  int i;
  for( i = 0; tt[i]; i++ )

    if((tt[i]>='a' )&&( tt[i] <= 'z' ) )/*判断字符是否为小写字母,即判断其是否在a~z之间,所以这里需要进行连续的比较,用&&。*/


      tt[i] -= 32;/*小写字母的ASCII码值比对应大写字母的ASCII值大32*/
  return( tt );
}

main( )
{
  char tt[81];
  printf( "\nPlease enter a string: " );
  gets( tt );
  printf( "\nThe result string is:\n%s", fun( tt ) );
}




函数fun的功能是:将所有大于1小于整数m的非素数存入xx所指的数组中,非素数的个数通过k返回。


#include <stdio.h>
void fun( int m, int *k, int xx[] )
{
int i,j,n;
for(i=4;i<m;i++)/*找出所有大于1小于整数m的非素数*/
for(j=2;j<i;j++)
if(i%j==0) break;
if(j>i)
xx[n++]=i;
*k=n;             /*返回非素数的个数*/



}

main()
{
   int m, n, zz[100];
   void NONO (  );
   printf( "\nPlease enter an integer number between 10 and 100: " );
   scanf(  "%d", &n );
   fun( n, &m, zz );
   printf( "\n\nThere are %d non-prime numbers less than %d:", m, n );
   for( n = 0; n < m; n++ )
      printf( "\n  %4d", zz[n] );
   NONO();
}

void NONO()
{
/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,
   输出数据,关闭文件。 */
   int m, n, zz[100];
   FILE *rf, *wf ;

   rf = fopen("in.dat","r") ;
   wf = fopen("out.dat","w") ;
   fscanf( rf, "%d", &n );
   fun( n, &m, zz );
   fprintf(wf, "%d\n%d\n", m, n );
   for( n = 0; n < m; n++ )
      fprintf(wf, "%d\n", zz[n] );
   fclose(rf) ;
   fclose(wf) ;
}

猜你喜欢

转载自blog.csdn.net/Marway/article/details/50853554