我是C语言的初学者。在阅读里奇书的最初章节后,我编写了一个程序来生成随机数字和字母。执行时出错:分割错误
该程序编译与gcc罚款。然而,在运行它时,它会给出一个错误“分段错误”,这对我有限的知识来说是难以理解的。我很乐意了解我写错了什么。
#include <stdio.h>
#include <stdlib.h>
#include "conio.h"
#include <time.h>
long int genrandom(int,int);
void randAlph(void);
char letterize(int);
int main (void) {
// char full[9];
// char part_non[4];
srand(time(0));
int i;
for (i=0;i<50;++i) {
randAlph();
};
}
long int genrandom(int mino,int maxo) {
int val=mino+rand()/(RAND_MAX/(maxo-mino)+1);
return val;
}
void randAlph(){
int val;
char text;
val=genrandom(0,26);
// return val;
text=letterize(val);
printf("%s ,",text);
}
char letterize(int num) {
char letter='A'+num;
return letter;
}
'printf(“%c,”,text);' – UmNyobe
将'-Wall'标志传递给gcc,它会给你一个关于这个问题的警告。 – interjay
要在间隔中生成数字,可以使用公式:'int val = mino + rand()%(maxo + 1);' – banuj