2011-12-12 62 views
-1

我需要编写一个程序,这将要求用户输入一个数字,他们希望有多少个整数进入..所以输出看起来像动态内存分配和动态数组

INTS的输入数字(必须大于1)

,他们会输入2之间的数 - 无限远(如果他们真的想要去那么远)

在这一点上,我会SCANF该号码,将其设置为可变

现在用这个数字,我想运行一个for循环问他们开始进入他们的INTS

for (count = 0; count < numofInts; count++) 
{ 
    printf(" Enter an integer: "); 
    scanf("%d", &Number); 
} 

有问题IM是,我需要确保它记录每次他们进入数字,所以我需要存储到一个数组的值,但数量数组的元素必须是动态的,以便它可以根据numofInts进行更改,我应该使用Malloc()创建一个动态内存分配空间,并且我明白它会创建一个具有内存空间的变量我将malloc设置为,但我不知道如何将一个变量存储到该空间,然后在我需要时将它们回调。

程序的最终结果应该是123456789这样的数字,然后循环存储整数的数字作为“最大”int,然后吐出哪个int是最大的,就像x = 1234567890一样, x%10,x = 0,最大= x,x/10,x%10,x = 9,如果x>最大,最大= x,循环直到循环遍历整个数字,并将该数字存储在最终。我有这个部分,但因为我必须采取一系列的数字,并运行这些循环的所有这些数字,我需要能够存储和调用这些值,并将它们放置在循环中,以便能够存储最大这些数字的数字

任何帮助这个问题将不胜感激,我只是一直无法弄清楚如何使用malloc或创建一个动态数组和大部分的教程在线阅读或从YouTube观看是关于C++和我需要不仅仅是C做到这一点...

http://pastebin.com/PZyvEQ4J

我至今

+1

[tl; dr](http://en.wiktionary.org/wiki/TL;DR)。你能大幅缩短你的散文到一个简单的可识别的问题吗? –

+0

你一年四季都做了什么!?!!?!??你吓到我了! –

+2

如果你想处理的数字与'无穷大'一样大,那么你就会陷入困境。 –

回答

2

你读numInts后,您分配数组,像这样:

int* arr = malloc(numInts*sizeof(int)); 

现在你填充阵列与你现有的功能和分配读取到数组中的值。

我不会给你一个完整的解决方案,因为这是家庭作业,也不会帮助你,但你访问i“个数组元素与[]操作:

arr[i]; 
+0

这正是我所需要的,非常感谢你,我知道它似乎不是很多,但我问我的老师如何将它做成一个数组,他刷了这个问题,只是有时候一个人需要明显的陈述... – user1070226

+0

@ user1070226很高兴帮助:) –

0

了解更多关于指针和calloc