这几个fun函数中指针n的位置和形式不同,有什么区别啊?我感觉都一样啊!
第一种:
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
void fun (int x, int pp[], int *n)
{
int i,j=0,count=0;
for(i=1;i<=x;i++)
{
if(x%i==0)
{
if(i%2!=0)
{ pp[j++]=i;
count++;
}
}
}
*n=count;
}
void main ()
{
FILE *wf;
int x,aa[1000], n, i ;
system("CLS");
printf("\nPlease enter an integer number : \n ") ;
scanf ("%d", &x) ;
fun (x, aa, &n) ;
for (i=0 ; i<n ; i++)
printf ("%d ", aa [i]);
printf ("\n ") ;
/******************************/
wf=fopen("out.dat","w");
fun (30, aa, &n) ;
for (i=0 ; i<n ; i++)
fprintf (wf,"%d ", aa [i]);
fclose(wf);
/*****************************/
第二种:
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
void fun (int x, int pp[], int *n)
{
int i,j=0,count=0;
*n=count;
for(i=1;i<=x;i++)
{
if(x%i==0)
{
if(i%2!=0)
{ pp[j++]=i;
count++;
}
}
}
}
void main ()
{
FILE *wf;
int x,aa[1000], n, i ;
system("CLS");
printf("\nPlease enter an integer number : \n ") ;
scanf ("%d", &x) ;
fun (x, aa, &n) ;
for (i=0 ; i<n ; i++)
printf ("%d ", aa [i]);
printf ("\n ") ;
/******************************/
wf=fopen("out.dat","w");
fun (30, aa, &n) ;
for (i=0 ; i<n ; i++)
fprintf (wf,"%d ", aa [i]);
fclose(wf);
/*****************************/
}
第三种:
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
void fun (int x, int pp[], int *n)
{
int i,j=0,count=0;
n=&count;
for(i=1;i<=x;i++)
{
if(x%i==0)
{
if(i%2!=0)
{ pp[j++]=i;
count++;
}
}
}
}
void main ()
{
FILE *wf;
int x,aa[1000], n, i ;
system("CLS");
printf("\nPlease enter an integer number : \n ") ;
scanf ("%d", &x) ;
fun (x, aa, &n) ;
for (i=0 ; i<n ; i++)
printf ("%d ", aa [i]);
printf ("\n ") ;
/******************************/
wf=fopen("out.dat","w");
fun (30, aa, &n) ;
for (i=0 ; i<n ; i++)
fprintf (wf,"%d ", aa [i]);
fclose(wf);
/*****************************/
}