编程序求100以内的素数,分别将它输出到显示器和x.txt文件中,要求每行5个数。(要求用c语言)

如题所述

源程序代码以及算法解释如下:

#define _CRT_SECURE_NO_WARNINGS

#include <iostream>

using namespace std;

int main(void)

{

 const int n = 25;//定义成绩数量

 int number[n];//定义存放成绩的数组

 int p=0;

 int flage=0;//标志变量

 char Data[256];//定义存文件用的变量

 FILE *pos;//定义一个文件指针

 int ii = 0;//用于判断换行的变量

 for (int i = 0; i <= 100; i++)//循环遍历

 {

  if (2 == i || 3 == i)//2,3都是素数

  {

   printf("%d\t", i);//打印

   ii++;

   flage = 1;//标志置位

  }

  for (int j = 2; j <= i / 2; j++)//判断

  {

   if (0 == i % j)

    break;

   if (i / 2 == j)

   {

    printf("%d\t", i);//打印

    flage = 1;//标志置位

    ii++;

   }

   if (ii == 5)//如果五个了进行换行

   {

    ii = 0;

    printf("\n");

   }

  }

  if (flage == 1)//标志置位则存到数组中

  {

   number[p] = i;

   p++;

   flage = 0;

  }

 }

 if (pos = fopen("data.txt", "w+"))//写文件

 {

  for (int i = 0; i < n; i++) //循环写入

  {

   sprintf(Data, "%d\n", number[i]);//写入文件成绩

   if ((i + 1) % 5 == 0)

    cout << endl;

   fputs(Data, pos);

  }

  fclose(pos);//关闭保存文件

 }

 return 0;

}

程序运行结果如下:


写入文件结果如下:


扩展资料:

【程序示例】从键盘输入一行字符,写入文件。

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

int main(){

FILE *fp;

char ch;

//判断文件是否成功打开

if( (fp=fopen("D:\\demo.txt","wt+")) == NULL ){

printf("Cannot open file, press any key to exit!\n");

getch();

exit(1);

}

printf("Input a string:\n");

//每次从键盘读取一个字符并写入文件

while ( (ch=getchar()) != '\n' ){

fputc(ch,fp);

}

fclose(fp);

return 0;

}

说明:运行程序,输入一行字符并按回车键结束,打开D盘下的demo.txt文件,就可以看到刚才输入的内容。程序每次从键盘读取一个字符并写入文件,直到按下回车键,while 条件不成立,结束读取。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-06-24
#include <stdio.h>
#include <math.h>
int ss(int n) /*检查n是否为素数,如果是则返回1,否则返回0*/
{
int i;
for (i=2; i<=(int)sqrt((double)n); i++)
if (n%i==0) return 0;
return 1;
}
int main(void)
{
FILE *fp;
fp=fopen("x.txt","w");
int i,j=0;
for (i=2; i<=100; i++)
if(ss(i))
{
j++;
printf("%5d",i);fprintf(fp,"%5d",i);
if (j%5==0) {printf("\n");fprintf(fp,"\n");}
}
fclose(fp);
return 0;
}本回答被提问者采纳
第2个回答  2011-12-14
#include <stdio.h>

int is_prime(int x){
for (int i=2; i<x && x%i!=0; i++);
if (i == x) return 1;
else return 0;
}

void main()
{
int a, count=0;
FILE *x = fopen("x.txt", "w");
for (a=2; a<100; a++){
if (is_prime(a)){
printf("%d ", a);
fprintf(x, "%d ", a);
count++;
if(count%5 == 0){
printf("\n");
fprintf(x, "\n");
}
}
}
fclose(x);

}