|
10鱼币
- #include <stdio.h>
- #pragma warning (disable:4996)
- #define N 10
- int fun(int x[], int e, int *sum)
- {
- int i,j=0;
- *sum=0;
- for(i=0;i<N;i++)
- {
- if(x[i]%e==0)
- {
- j++;
- }
- else
- {
- *sum=*sum+x[i];
- }
- }
- return j;
- }
- main()
- {
- void NONO();
- int x[N] = {1, 7, 8, 6, 10, 15, 11, 13, 29, 31}, e = 3, n, sum;
- n=fun(x, e, &sum);
- printf("n=%d,sum=%d\n", n, sum);
- NONO();
- }
- void NONO()
- {
- /* 请在此函数内打开文件,输入测试数据,调用 fun 函数,
- 输出数据,关闭文件。 */
- int i, j, x[10], n, e, sum;
- FILE *rf, *wf ;
- rf = fopen("in.dat","r") ;
- wf = fopen("out.dat","w") ;
- for(i=0; i<5; i++) {
- for(j=0; j<10; j++) fscanf(rf, "%d ", &x[j]); fscanf(rf, "%d", &e);
- n = fun( x, e, &sum );
- fprintf(wf, "%d, %d\n", n, sum);
- }
- fclose(rf) ;
- fclose(wf) ;
- }
复制代码
编写函数fun,其功能是:统计出x所指数组中能被e整除的元素个数,通过函数值返回主函数;同时,计算不能被e整除的元素之和,放到形参sum所指的存储单元中;
我想问一下为什么sum不需要返回啊?只需要return j就可以了。
因为sum传入的是指针,指针可以改变函数以外的变量
|
最佳答案
查看完整内容
因为sum传入的是指针,指针可以改变函数以外的变量
|