1. 程式人生 > >上三角矩陣與數組中元素之和最大

上三角矩陣與數組中元素之和最大

include 步驟 技術 open turn txt 行數 流程 最大

一:實驗代碼

include<stdio.h>

int main()
{
int T,m,i,k,j,sum=0;
scanf("%d",&T);
for(i=1;i<=T;i++)
{
scanf("%d",&m);
int a[m][m];
for(j=0;j<m;j++)
for(k=0;k<m;k++)
scanf("%d",&a[j][k]);
for(j=0;j<m;j++)
for(k=0;k<j;k++)
sum+=a[j][k]; //看是否k>j的數和是否為零

if(sum==0)
printf("YES\n");
else printf("NO\n");
sum=0;
}
return 0;
}
二:設計思路
技術分享圖片

三:本題的問題
1)剛開始不會如何去判斷左下角的數為零,也不會去利用(if k>j)來判斷
2) 這個輸入就像輸入正方形一樣,然後利用(if k >j)判斷 這樣就顯得一目了然了。
3)利用數組後覺得很多要表達的數很簡單 就連下表都可以都可以比較大小,這樣會縮短代碼的行數。

四;學習進度:這個星期二就一直在研究了 一直到現在。

第二題
一:實驗代碼

include<stdio.h>

include<stdlib.h>

int main()
{
FILE*fp;
int i,n;
int a[20];
int sum=0;
int max=a[i];

if((fp=fopen("C:\\chenxin\\chenxin.txt","w+"))==NULL)
{
    printf("File open error!\n");
    exit(0);
}
scanf("%d",&n);
fprintf(fp,"%d",n);
for(i=0;i<8;i++)
    scanf("%d",&a[i]);
    fprintf(fp,"%d",a[i]);
for(i=0;i<8;i++)
{
    sum=sum+a[i];
    if(sum < a[i])
    {       
     sum=a[i];
    }
    if(sum >= max)
    {
    sum=max;
    }
}
fscanf(fp,"%d",max);
if(fclose(fp)){
    printf("Can not close the file!\n");
    exit(0);
}
return 0;

}

二:設計思路
技術分享圖片

三:本題問題
1)對於語句的銜接上還是會出現大量的問題,我知道該流程怎麽一步步的運算下去,但總會在某一步停下覺得要加入其他的運算這樣很糾結 但運算時又是錯的,但添加的步驟又是對的。就很糾結了。
2)此題就是的考慮周全(比如不能忽視元素0的存在 雖然不會影響結果 但也得考慮到)
3)記住固定的格式(最重要的)

四:學習進度
幾乎這都在打代碼
最多行數:46行

上三角矩陣與數組中元素之和最大