给定一个整数数组(包含正负数),找到一个具有最大和的子数组,返回其最大的子数组的和。
例如:[1, -2, 3, 10, -4, 7, 2, -5]的最大子数组为[3, 10, -4, 7, 2]
请建立以自己英文名字命名的txt文件,并输入数组元素数值,元素值之间用逗号分隔。
在不删除原有文件内容的情况下,将最大子数组以及子数组的和写入文件。
#include<stdio.h>
#include<stdlib.h>
int main ()
{
FILE *fp;
int n,i,sum=0;
int a[100];
int max=a[i];
if((fp=fopen("E:\\3.txt","a+"))==NULL)
{
printf("File open error!\n");
exit(0);
}
fprintf(fp,"%d\n",n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
fprintf(fp,"%d",a[i]);
for(i=0;i<n;i++)
{
sum+=a[i];
if(sum<a[i])
{
sum=a[i];
}
if(sum>max)
{
max = sum;
}
}
fprintf (fp,"\n%d",max);
if(fclose(fp))
{
printf("Can not close the file!\n");
exit(0);
}
return 0;
}
1.对进行判断的字符要进行重置,否则输出会显示错误
2.弄明白fou语句和fp的意思
给定一个整数数组(包含正负数),找到一个具有最大和的子数组,返回其最大的子数组的和。
例如:[1, -2, 3, 10, -4, 7, 2, -5]的最大子数组为[3, 10, -4, 7, 2]
请建立以自己英文名字命名的txt文件,并输入数组元素数值,元素值之间用逗号分隔。
在不删除原有文件内容的情况下,将最大子数组以及子数组的和写入文件
,将最大子数组以及子数组的和写入文件
#include<stdio.h>
#include<stdlib.h>
int main (void)
{
FILE * fp;
int i,m;
int a[6];
char op=‘,‘;
if ((fp=fopen ("E:3.2.txt","a+"))==NULL)
{
printf ("Flie open error!\n");
exit (0);
}
for (i=0;i<6;i++)
{
fscanf(fp,"%d%c",&a[i],&op);
printf("%d%c",a[i],op);
}
for(i=0;i<6;i++){
if(a[i]>a[m]){
m=i;
}
}
fprintf(fp,"\n");
fprintf (fp,"%d,%d",a[m],m);
if (fclose(fp))
{
printf ("Can not close the file!\n");
}
return 0;
}
对指针的东西有点忘了,要看书复习一下
周/日期 |
这周所花的时间(小时) |
代码行数(行) |
学到的知识点简介 |
目前比较迷惑的问题 |
3/2-3/8 |
20+ |
200+ |
数组,指针的大致意义,文件 |
数组串指针 |
原文:https://www.cnblogs.com/lpf666/p/11074507.html