第16周报告2(任务3)
实验目的:学会利用指针解决问题
实验内容:求出一个数所有的奇数因子
/* 程序头部注释开始
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称: 用指针求出一个数的所有奇数因子
* 作 者:2011级114-3张宗佳
* 完成日期:2011 年 12 月 9 日
* 版 本号: vc.0
* 对任务及求解方法的描述部分
* 输入描述:一个整数x
* 问题描述:输出x的所有奇数因子
* 程序输出:x的所有奇数因子及其个数
*/
#include<iostream>
using namespace std;
int fun(int ,int *);
int main(void)
{
int a[50], x, n;
cout << "请输入一个整数:";
cin >> x;
n = fun(x,a);
cout << x << "的奇数因子共有" << n << "个,分别是:";
for(int i = 0; i < n; i++)
{
cout << a[i] << " ";
}
cout << endl;
return 0;
}
int fun(int x, int*pp)
{
int i, y, n = 0;
if(x > 0)
{
for(i = 1; i <= x; i++)
{
if(x % i == 0 && i % 2 == 1)
{
*(pp + n) = i;
n++;
}
}
}
if(x < 0)
{
y = (-x);
for(i = 1; i <= y; i++)
{
if(y % i == 0 && i % 2 == 1)
{
*(pp + n) = (-i);
n++;
}
}
}
if(n == 0)
{
cout << "此整数无奇数因子" << endl;
}
return n;
}
运行结果:
经验积累:
1.一个是奇数因子的算法,一个是指针的利用,要分清楚指针表示的是什么意思
上机感言:还好,完成了,就是在当x<0的算法上出了点小插曲,在定义一个变量Y,把x赋给y,再把(-i)赋给指针变量就好了