2

我在 Linux 中有学校项目,我需要创建一个用户定义的文本文件,其中包含 1000 个介于 100-999 之间的随机数。

我设法通过使用数组创建用户定义的文件,并且我的代码没有错误,但是当我运行它时,我的文件中只有一个数字,但我想使用 1000 个数字 \n 但它不起作用请帮助我?

#include<stdio.h>
#define MAX 100

int main()
{
    FILE *fp;
    char dosya[MAX];
    printf("\nLütfen dosya adı giriniz:");
    scanf("%s",dosya);
    fp=fopen(dosya,"w");
    int i;
    for (i=0;i<1000;i++);
    {

        int sayi;

        sayi=rand()%999-100;
        fprintf(fp,"\n");
        fprintf(fp,"%d\n",sayi);
        fprintf(fp,"\n");
    }
    fclose(fp);
    return 0;
}

当我在我的文件中运行它时,只有一个数字,所以我认为它一直在同一行写 1000 次(但有 /n)我检查了 for 循环的其余部分在哪里,它的工作请帮助我?

4

3 回答 3

9

删除 for 循环后的分号。

当你在所有1000 迭代之后执行你的代码时,只有一次你的块在 for 循环之后执行。

for (i=0;i<1000;i++);  
                    ^^   
于 2013-11-12T19:12:19.293 回答
3

在 C 语言中,所有指令都以分号结束

你的“for”语句末尾有一个分号,它被解释为“什么都不做”指令。

for (i=0;i<1000;i++);  

删除尾随分号,它将起作用。

于 2013-11-12T19:14:30.170 回答
1

您将在创建它之后终止 for 循环。删除下面一行的分号。

对于 (i=0;i<1000;i++);

您的最终代码:

#include<stdio.h>
#define MAX 100

int main(){
FILE *fp;
char dosya[MAX];
printf("\nLütfen dosya adı giriniz:");
scanf("%s",dosya);
fp=fopen(dosya,"w");
int i;
for (i=0;i<1000;i++){ 
    int sayi;
    sayi=rand()%999;
    fprintf(fp,"\n");
    fprintf(fp,"%d\n",sayi);
    fprintf(fp,"\n");
}
fclose(fp);
return 0;

}

于 2013-11-12T19:20:34.670 回答