错题集:
1.编写函数 fun() ,统计在主函数中输入的单词个数,作为函数返回值。规定所有单词由小写字母组成,单词之间有若干个空格隔开,一行的开始没有空格。
#include<string.h>
#include<stdio.h>
#define N 80
int fun(char *s)
{
int m, n = 0;
for(m=0;s[m] != '\0';m++)
{
if(s[m] != ' ' && (s[m+1] == ' ' || s[m+1] == '\0'))
n++;
}
return n;
}
void main()
{
char line[N];
int num=0;
printf("Enter a string:\n ");
gets(line);
num=fun(line);
printf("The number of word is:%d\n\n ",num);
}
2.用for循环求n个整数的最大值
#include<stdio.h>
int main()
{
int number, max;
int i, n;
printf("请输入整数的个数:\n");
scanf("%d", &n);
printf("请输入%d个整数:\n",n);
scanf("%d",&max);
for(i=1; i<=n-1; i++)
{
scanf("%d",&number);
if(number > max)
max = number;
}
printf("%d\n",max);
return 0;
}
3.输入一个整数 n ,输出 1~n 的阶乘表
#include<stdio.h>
int main()
{
int i, n;
double fact;
printf("请输入整数n:\n");
scanf("%d", &n);
fact = 1;
for(i=1; i<=n; i++)
{
fact = fact * i;
printf("%d %.0f\n",i,fact);
}
return 0;
}
4.定义一个NxN的二维数组,并在主函数中赋值。函数fun的功能是:求出数组周边元素的平均值并作为函数值返回给主函数的s。
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#define N 5
double fun (int w[][N])
{
double av,sum = 0;
int i,j,k = 0;
for (i=0; i<N; i++)
{
for (j=0;j<N;j++)
{
if(i==0 || i==N-1 || j==0 || j==N-1)
{
sum += w[i][j];
k++;
}
}
}
av = sum/k;
return av;
}
void main()
{
FILE *wf;
int a[N][N]={0,1,2,7,9,
1,9,7,4,5,
2,3,8,3,1,
5,9,1,4,1
};
int i, j;
double s;
system("CLS");
printf("*****The array*****\n ");
for (i=0; i<N; i++)
{
for (j=0;j<N;j++)
{
printf("%4d ",a[i][j]);
}
printf("\n ");
}
s=fun(a);
printf("*****THE RESULT*****\n ");
printf("The sum is : %lf\n ",s);
5.定义一个函数fun,用来交换x、y的的值
#include <stdio.h>
void fun(int *x,int *y)
{
int t;
t=*x;
*x=*y;
*y=t;
}
void main()
{
int a,b;
a=8;
b=3;
fun(&a, &b);
printf("%d %d\n ", a,b);
}
6.将mm行,nn列的二维数组按照行顺序依次放到一维数组,一位数组的个数存放在形参n所指的存储单元中。
#include <stdio.h>
void fun (int (*s)[10], int *b,
int *n, int mm, int nn)
{
int i,j,k = 0;
for(i=0; i<mm; i++)
{
for(j=0; j<nn; j++)
{
b[k++] = s[i][j];
*n = k;
}
}
}
void main()
{
int w[10][10]={{33,33,33,33},{44,44,44,44},
{55,55,55,55}}, i, j;
int a[100]={0},n=0 ;
printf("The matrix:\n");
for (i=0; i<3; i++)
{
for (j=0;j<4;j++)
printf("%3d",w[i][j]);
printf("\n");
}
fun(w,a,&n,3,4);
printf("The A array:\n");
for(i=0; i<n; i++)
printf("%3d",a[i]);
printf("\n\n");