c语言用fprintf输出一维数组
我要编一个关于最小堆排序的程序:题目如下:对于给定的2个正整数a小于等于b,使用伪随机数发生器产生在a和b之间的多个随机数。设计一个算法完成对这些随机数的最小堆排序输入:...
我要编一个关于最小堆排序的程序:
题目如下:
对于给定的2个正整数a小于等于b,使用伪随机数发生器产生在a和b之间的多个随机数。设计一个算法完成对这些随机数的最小堆排序
输入:由文件名为input.txt的文本文件提供,第一行有两个正整数a和b
输出:输出到文件output.txt,第一行为产生的伪随机数序列,从第二行开始输出完整的堆排序过程
这是我的主函数,调用函数我还没有写
#include<stdio.h>
#include<stdlib.h>
int a,b,p[9],i;
FILE *in,*out;
void main()
{
unsigned int seed;
in=fopen("D:\\input.txt","r");
fscanf(in,"%d,%d",&a,&b);
seed=a;
srand(seed);
for(i=0;i<=9;i++)
{
p[i]=rand()%(b-a)+a;
printf("%d ",p[i]);
}
out=fopen("D:\\output.txt","w");
fprintf(out,"随机数列为%d",p);
}
我的困难是,我的随机数列输出的是正常的,但是写到文件中是不对的,问题是什么?
输入是21,80
输出是:随机数列为4374212
求解,谢谢! 展开
题目如下:
对于给定的2个正整数a小于等于b,使用伪随机数发生器产生在a和b之间的多个随机数。设计一个算法完成对这些随机数的最小堆排序
输入:由文件名为input.txt的文本文件提供,第一行有两个正整数a和b
输出:输出到文件output.txt,第一行为产生的伪随机数序列,从第二行开始输出完整的堆排序过程
这是我的主函数,调用函数我还没有写
#include<stdio.h>
#include<stdlib.h>
int a,b,p[9],i;
FILE *in,*out;
void main()
{
unsigned int seed;
in=fopen("D:\\input.txt","r");
fscanf(in,"%d,%d",&a,&b);
seed=a;
srand(seed);
for(i=0;i<=9;i++)
{
p[i]=rand()%(b-a)+a;
printf("%d ",p[i]);
}
out=fopen("D:\\output.txt","w");
fprintf(out,"随机数列为%d",p);
}
我的困难是,我的随机数列输出的是正常的,但是写到文件中是不对的,问题是什么?
输入是21,80
输出是:随机数列为4374212
求解,谢谢! 展开
2个回答
展开全部
你好!!
随机数写入文件的时候,也要采用循环写入,你看看吧
程序的增加部分是,循环写入;
for(i=0;i<=9;i++)
{
fprintf(out,"%d ",p[i]);
}
下面是完整的代码
#include<stdio.h>
#include<stdlib.h>
int a,b,p[9],i;
FILE *in,*out;
int main()
{
unsigned int seed;
in=fopen("D:\\input.txt","r");
fscanf(in,"%d,%d",&a,&b);
seed=a;
srand(seed);
for(i=0;i<=9;i++)
{
p[i]=rand()%(b-a)+a;
printf("%d ",p[i]);
}
out=fopen("D:\\output.txt","w");
fprintf(out,"随机数列为 ");
for(i=0;i<=9;i++)
{
fprintf(out,"%d ",p[i]);
}
}
展开全部
改如下,对照看——
void main(){
unsigned int seed;
in=fopen("D:\\input.txt","r");
fscanf(in,"%d,%d",&a,&b);
seed=a;
srand(seed);
out=fopen("D:\\output.txt","w");
for(i=0;i<=9;i++){
p[i]=rand()%(b-a)+a;
printf("%d ",p[i]);
fprintf(out,"%d ",p[i]);
}
}
void main(){
unsigned int seed;
in=fopen("D:\\input.txt","r");
fscanf(in,"%d,%d",&a,&b);
seed=a;
srand(seed);
out=fopen("D:\\output.txt","w");
for(i=0;i<=9;i++){
p[i]=rand()%(b-a)+a;
printf("%d ",p[i]);
fprintf(out,"%d ",p[i]);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询