l 除数函数是怎么存储数据?在这里为什么使用这个方法?
l 标识符divisor和Divisor是相同的吗?为什么?
//Program 6.1.b #include "stdafx.h" #include "stdio.h" struct Divisor { int intDivisor; Divisor * next; }; struct Divisor * divisor(int); void display(Divisor *); int main() { int n; printf("Enteran integer: "); scanf("%d",&n); display(divisor(n)); return 0; } struct Divisor * divisor(int n) { int i = 1; Divisor * p, * h; p = new Divisor; h = p; p->intDivisor =1; p->next = 0; while (++i <= n) if (n % i == 0) { p->next =new Divisor; p =p->next; p->intDivisor= i; p->next =0; } return h; } void display(Divisor * p) { do { printf("%d ",p->intDivisor); p = p->next; } while (p != 0); }
|