求改程序代码 手动输入改成读取.txt文件的形式
这个是生成txt文件的程序,v的输入范围不大于20(老师给我的要求就是1到2的20次方之间的随机数),我写的时候没有考虑过大于20会出现什么情况,反正满足20以下不会出错就好了。
程序代码:#include <stdio.h>
#include <stdlib.h>
#include<time.h>
#include<math.h>
int main(int argc, char *argv[])
{
long a[10000],i=0,j,t,num,v,max;
FILE *fp=fopen("text.txt","w");
printf("please enter the variable=");
scanf("%d",&v);
printf("please enter the munber=");
scanf("%d",&num);
fprintf(fp,".v %d\n.num %d\n",v,num); //第一行显示.i i的大小,第二行显示.M M的大小
srand(time(NULL));
max=(long)pow(2,v);
while(i<num)
{
a[i]=(long)(rand()*rand()%max+1);
for(j=0;j<i;j++)
{
if(a[j]==a[i])
break;
}
if(j==i)
{
i++;
}
}
for(i=0;i<num-1;i++)
for(j=i+1;j<num;j++)
if(a[i]>a[j])
{
t=a[i];a[i]=a[j];a[j]=t;
}
for(i=0;i<num;i++)
fprintf(fp,"%-d ",a[i]);
fclose(fp);
return 0;
}
现在有另一个程序,本来是手动输入的,但是如果要输入2000个数据,一个一个输入那确实要输入老半天。所以按要求谢了上面的程序。但是我不知道怎么正确的读取txt文件中数据。所以求助大神,能不能帮忙改一下。或者给个详细点的解决方案!谢谢!
下面的就是主程序,主程序还包含很多副程序,因为没有必要,就不贴了。主要就是把输入方式改一下就好了。或者有没有什么好的例子可以借鉴的?
程序代码:int main()
{
int num,i,n,maxbit;
NODE* p;
printf("请输入数的个数:(不等于0,至少输入2个)\n");
scanf("%d",&num);
LISTNODE *listnodep=malloc(sizeof(LISTNODE));
add_listnode(listnodep);
listnodep->listhead=NULL;
for(i=0;i<num;i++){
printf("第%d个数:",i+1);
scanf("%d",&n);
p=malloc(sizeof(NODE));
p->num=n;
add_node(&listnodep->listhead,p);
}
//这句话上面的就是程序的输入部分
chnum=0;
for(p=listnodep->listhead,n=-1;p;p=p->next){
n=n&p->num;
}
if(n==0){
if(condition_check(listnodep->listhead)){
chnum+=num;
}else{
loop();
}
}else{
chnum+=count1(n);
maxbit=count_maxbit(listnodep->listhead);
n=~(unsigned int)n%(1<<maxbit);
for(p=listnodep->listhead;p;p=p->next){
p->num&=n;
}
if(check_all0(listnodep->listhead)){
}else{
delete_all0(&(listnodep->listhead));
if(listnodep->listhead->next==NULL){
chnum+=count1(listnodep->listhead->num);
}else{
if(condition_check(listnodep->listhead)){
chnum+=countnum(listnodep->listhead);
}else{
loop();
}
}
}
}
printf("字母数=%d\n",chnum);
system("pause");
return 0;
}






