函数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) ;
}
#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) ;
}