c程序求教
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);}
标识符divisor和Divisor是相同的吗?为什么?
struct Divisor
{
int intDivisor;
Divisor * next;
};
Divisor,这个是结构体,一个链表的节点。其中的 intDivisor用来保存数据,next用来指向下一个节点。
struct Divisor * divisor(int);
divisor,这个是函数。返回值为struct Divisor 参数为 int型整数。
还有你这个应该是C++的程序吧。C中没有new的。
而且这个程序写的是有问题的,只有new 没有对应的 delete 会造成内存泄露的。
本帖最后由 maomingkun 于 2013-12-12 22:14 编辑
这个貌似是链表吧?不是太懂
看代码是传进一个指针,然后修改指针指向的内容,你说的除数是在这被修改保存的
给你个例子看一下
#include<stdio.h>
void display(int *a)
{
*a=6;
}
int main()
{
intInt=5;
int *p;
p=∬
printf("%d\n", Int);
display(p);
printf("%d\n", Int);
return 0;
}
是不是这个样子的呢?
c语言中区分大小写的,int是关键字,Int是变量。你说的那个大写的那个是结构体的名字,小写的是结构体变量的名字,所以我觉得它们是不一样的!
页:
[1]