读写文件流程: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语言编程等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)