请编写函数void fun(int x,int pp[],int *n),它的功能是:求出能整除x且不是偶数

的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。

以下是我写的 不论输入多少 输出的都是0 请大侠帮忙找找怎么改

#include<stdio.h>
int n=0;
void fun(int x,int *n)
{
int pp[100];
int i;
for(i=1;i<=100;i++)
{
if(x%i==0&&i%2!=0)
{
pp[i]=x;
*n++;
}
}
return(n);
}

void main()
{
int x,i;
printf("请输入一个小于100的整数:");
scanf("%d",&x);
fun(x,n);
printf("%d\n",n);
}

1、首先,我们调用两个库文件

2、然后我们用一个输出语句构成语句。

3、然后我们输入他的函数名称。

4、运行后,我们就可以i看到他的结果。

5、如果看到零不舒服的话,可以加上强制转换。

6、这时候运行,就可以看到结果。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-11
#include<stdio.h>

#define MAX_SIZE 100

void fun(int x,int *pp)
{
int i,j=0;
for(i = 1; i<MAX_SIZE; i++)
{
if( x%i==0&&i%2 != 0)
{
pp[j]=i;
j+=1;
}
}
}

void main()
{
int x;
int i,j;
int pp[MAX_SIZE] ={0};
printf("请输入一个小于100的整数:");
scanf("%d",&x);
fun(x,pp);
i = 0;
while(pp[i]!=0)
{
i++;
}
for(j=0; j<i;j++)
{
printf(" %d",pp[j]);
}
}

请输入一个小于100的整数:100
1 5 25请按任意键继续. . .本回答被网友采纳
第2个回答  推荐于2016-10-16
#include<stdio.h>
void fun(int x,int *n)
{
int pp[100] = {0};
int i,j = 0;
for(i=1;i<=x;i++)
{
if(x%i==0&&i%2!=0)
{
pp[j++]=i;
}
}
for(i = 0; i < j; i++)
{
printf("%d ",pp[i]);
if(i+1 % 3 == 0)
printf("\n");
}
*n = j;
}

void main()
{
int x;
int n;
printf("请输入一个小于100的整数:");
scanf("%d",&x);
fun(x,&n);
printf("\n\n共%d个\n",n);
}
本来想指出你代码中的错误的,但是实在太多了,弄了一下就懒得弄,直接给你修改过的吧追问

int pp[100] = {0};
int i,j = 0;
for(i=1;i<=x;i++)
{
if(x%i==0&&i%2!=0)
{
pp[j++]=i;
}
}
这里为什么要弄两个变量呢?

本回答被提问者采纳
相似回答