/*
* Copyright (c) 2013, 烟台大学计算机学院
* All rights reserved.
* 作 者:孔云
* 完成日期:2013 年 12 月 14日
* 版 本 号:v1.0
* 输入描述:编写程序,求一个数的所有奇数因子,按从小到大顺序存入pp指向的内存中;
并输出因子的个数。
* 问题描述:再次理解函数及指针和数组的联系运用及编程算法。
*/
#include<iostream>
using namespace std;
int fun(int x,int*pp);
int main()
{
int a[50],x,n;
cout<<"请输入一个合法数:"<<endl;
cin>>x;
n=fun(x,a);
cout<<x<<"的奇因子共有"<<n<<"个,分别是:";
for(int i=0; i<n; i++)
cout<<a[i]<<" ";
cout<<endl;
return 0;
}
//下面定义fun函数
int fun(int x,int*pp)
{
int i,j=0;
for(i=1; i<=x; i++)
{
if(x%i==0&&i%2!=0)
{
*(pp+j)=i;
j++;
}
}
return j;
}
心得体会:这是从同学那里看后,经过一点小小的修改,得到的,同学的答案不对,但是算法思路值得我这个笨鸟大大得学习,先前那一篇思路太繁了,不简便啊!
再次让我体会到:编程=算法+数据算法太重要了!