【发布时间】:2009-06-09 08:02:00
【问题描述】:
我想要完成的是生成 100 个随机 0 和 1,将它们全部添加到一个变量中,然后打印出来。我现在拥有的东西我不知道如何工作。如果有人能解释我做错了什么,我将不胜感激。
randstring (void){
int i;
int num;
char buffer[101];
i=100;
while(i>0, i--){
num = rand()%2;
strcpy(buffer, num);
}
return(buffer);
}
我现在拥有的是:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
main (void){
printf("%f", randstring());
}
randstring (void){
int num;
char buffer[101];
int i = 100;
while(i-- >= 0) buffer[i] = rand() % 2;
return(buffer);
}
【问题讨论】:
-
正如@alamar 指出的那样,您需要字符 '0'(=48) 和 '1'(=49) 而不是 0 和 1
-
我还建议:将 {} 添加到 while 中,因为从返回中删除 () 会更清楚,它不是函数。和!你不能返回缓冲区!您需要在 main 中静态分配它并传递,或者在 randstring 中动态分配它(使用 malloc)
-
chnage 缓冲区[i] = rand() % 2;到缓冲区 [i] = (rand() % 2) ? '1' : '0';
-
我在下面更新了我的答案以使用动态长度。由于手边没有 C 编译器,所以没有编译!
-
这就是为什么在 Windows 上编程被认为是有害的。除非您安装了 500M IDE,否则您没有任何方便的东西。他的其他问题是他没有前向声明 randstring(),并且他使用 prinf("%f") 来打印字符串。
标签: c random string-concatenation