用c语言编程

用c语言编程,第1张

程序就是读取文件数组,再将数组进行排序,最后写入文件。

读写文件流程:fopen获取文件流(根据读写需求,选择参数,使用完必须调用fclose函数关闭),fscanf读取文件内容,fseek控制文件流指针,fprintf写入文件。

选择排序:每个循环周期选出一个最值,交换一次。

下面是代码(数组为动态数组):

#include <stdioh>

#include <malloch>

int maxLen;//数组长度

int read2Nums(char path[]);//读取

int write2File(int nums,char path[]);//写入

void showNums(int nums);

int px(int nums,int flag);//选择排序flag=1升序,flag=0降序

int main()

{

  int nums=NULL;

  char rPath[]="c:\\000dat",wPath[]="c:\\rankdat";

  if(!(nums=read2Nums(rPath))) return 1;

  showNums(nums);

  printf("数组升序排列:\n");

  if(px(nums,1)==-1) return 1;

  showNums(nums);

  printf("数组降序排列:\n");

  if(px(nums,0)==-1) return 1;

  showNums(nums);

  printf("写入到文件路径%s下(存在覆盖,不存在新建)\n",wPath);

  if(write2File(nums,wPath)==-1) return 1;

  printf("写入成功!\n");

  return 0;

}

void showNums(int nums)

{

  int i;

  if(nums) for(i=0,printf("文件内容:\n");i<maxLen;printf("%d ",nums[i]),i++);

  printf("\n");

}

int px(int nums,int flag)

{

  int i,j,n,temp;

  if(!nums) return -1;

  for(i=0;i<maxLen-1;i++)

  {

      n=i;

      for(j=i+1;j<maxLen;j++)

      {

          if(flag && nums[n]>nums[j]) n=j;

          if(!flag && nums[n]<nums[j]) n=j;

      }

      temp=nums[i],nums[i]=nums[n],nums[n]=temp;

  }

  return 1;

}

int write2File(int nums,char path[])

{

  int i;

  FILE fp=NULL;

  if(!nums) return -1;

  if(!(fp=fopen(path,"w"))) return -1;

  //fseek(fp,SEEK_END);

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

      fprintf(fp,"%d ",nums[i]);

  fclose(fp);

  return 1;

}

int read2Nums(char path[])

{

  int nums=NULL,temp=NULL,cnt=0;

  FILE fp=NULL;

  maxLen=10;

  if(!(fp=fopen(path,"r"))) return NULL;

  nums=(int )malloc(sizeof(int)maxLen);

  if(!nums) return NULL;

  while(fscanf(fp,"%d",&nums[cnt++])!=-1)

      if(cnt==maxLen)//数组长度不够扩展(每次扩展10长度)

      {

          maxLen=maxLen+10;

          temp=(int )realloc(nums,sizeof(int)maxLen);

          if(temp) return NULL;

          nums=temp;

      }

  if(--cnt<maxLen)//函数结束前,删除多余地址,减少内存占用

  {

      maxLen=cnt;

      temp=(int )realloc(nums,sizeof(int)maxLen);

      if(!temp) return NULL;

      nums=temp;

  }

  fclose(fp);

  return nums;

}

1、首先把头文件,main函数写好#include<stdioh>  main(),如下图所示。

2、之后需要定义几个变量,一个存放和,一个从1开始到100,如下图所示。

3、之后书写for循环,首先给i赋值为1,其中如果要求200以内和把数字100改为200即可。

4、然后写for循环里面的内容,sum=sum+i;把每个i的值加到sum里面。

5、最后进行输出,编写输出语句把它输出出来,sum为整形,故用%d,如下图所示就完成了。

#include <stdioh>

int main( )

{ int i,x,a[10];

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

  scanf("%d",&a[i]);

scanf("%d",&x);

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

  if(a[i]==x)break;

if(i<10)printf("yes,%d\n",i);

else printf("no");

return 0;

}

以上就是关于用c语言编程全部的内容,包括:用c语言编程、用c语言编程如何实现求和的程序代码、c语言编程等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/zz/9442334.html

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

发表评论

登录后才能评论

评论列表(0条)

保存