C语言编写一个随机生成电话号码且按大小排序的程序

C语言编写一个随机生成电话号码且按大小排序的程序,第1张

rand()函数应该知道吧,一般的排序算法:选择,冒泡什么的算法。回了就可以写了。先用

先定义一个数组,然后用rand()函数生成随机数给数组的每个元素赋值,然后排序。。。这样就完成了。。。希望楼主能够坚持,自己做出来的才是最有成就感的,可能实现的时候逻辑还是不清晰,代码也不是很漂亮,这都是一个必须经历的过程。我当初学语言的时候,也有过花几天写一个很简单的程序。。。由此喜欢编程。。。。不罗嗦了,楼主整理思路,继续调试吧。

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <time.h>

void selectsort(int *x, int n) {

int i, j, min,t

for (i = 0i <n - 1i++) {

min = i

for (j = i + 1j <nj++) {

if (*(x + j) <*(x + min)) min = j

}

if (min != i) {

t = *(x + i)

*(x + i) = *(x + min)

*(x + min) = t

}

}

}

void select(int m,int n,int k) {

int num[36],tmp[36],t

char filename[] = "C:\\2011\\随机号码.txt"// 选择你需要的路径

FILE *fp

srand((unsigned)time(NULL))

fp = fopen(filename,"wt")

if(fp == NULL) {

printf("打开文件%s错。\n",filename)

exit(1)

}

for(int i = 0i <k++i) {

for(int j = 1j <= m++j) tmp[j] = j

for(j = 0j <n++j) {

t = (unsigned)rand()%m + 1

if(tmp[t] != 0) {

num[j] = t

tmp[t] = 0

}

else --j

}

selectsort(num,n)

for(j = 0j <n++j) {

fprintf(fp,"%02d ",num[j])

printf("%02d ",num[j])

}

fprintf(fp,"\n")

printf("\n")

}

fclose(fp)

}

int main() {

int m,n,k

printf("被选号码数 : ")

scanf("%d",&m)

printf("可选号码数 : ")

scanf("%d",&n)

printf("所选组数 : ")

scanf("%d",&k)

select(m,n,k)

return 0

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11627133.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存