1. 程式人生 > 其它 >第一次上機總結

第一次上機總結

第一次上機報告

1.

#include <stdio.h>

int main()

{

int a,b,c,d,e;

scanf("%d%d%d%d%d",&a,&b,&c,&d,&e);

printf("Rank Number\n----------------\nExcellent%7d\nGood%12d\nMedium%10d\nPass%12d\nFail%12d\n----------------\nTotal%11d\n",a,b,c,d,e,a+b+c+d+e);

return 0;

}

這是更改後的程式碼 寫的時候一開始先跳過了,後面著急一時沒想到%nd,出了考場想到了。

4.#include <stdio.h>

int main()

{int y,m,c;

while(scanf("%d %d",&y,&m)!=EOF)

{

if(y%4==0&&y%100!=0&&m==2)c=29;

else if(m==1||m==3||m==5||m==7||m==8||m==10||m==12)c=31;

else c=30;

printf("%d\n",c);

}

return 0;

}

這是考試時候的程式碼,漏看了閏年條件,一直一直找不到問題所在,沒有重看題目。

更改後

#include<stdio.h>
intmain()
{
intn;
scanf("%d",&n);
for(inti=1;i<=n;i++)
{
for(intj=i-1;j>0;j--)printf("");
for(inth=2*n-(2*i-1);h>0;h--)printf("*");
printf("\n");
}
for(inti=2;i<=n;i++)
{
for(intj=i+1;j<=n;j++)printf("");
for(inth=2*i-1;h>0;h--)printf("*");
printf("\n");
}
return0;
}其實這個程式碼還是有問題,於是我又修正了一次。

程式碼如下

#include <stdio.h>

int main()

{

int y,m,c,d;

while(scanf("%d %d",&y,&m)!=EOF)

{

if((y%4==0&&y%100!=0)||y%400==0)d=29;else d=28;

if(m==1||m==3||m==5||m==7||m==8||m==10||m==12)c=31;

else c=30;

if(m==2)printf("%d\n",d);

else printf("%d\n",c);

}

return 0;

}

5.#include <stdio.h>

int main()

{ int unsigned a,u,c;

int tag;

scanf("%d %d %d",&a,&u,&c);

scanf("%d",&tag);

if(tag<0||tag>95)printf("Error");

return 0;

}

這是考試時的程式碼,怎麼說呢,就是當時腦瓜子已經嗡嗡的了,沒多想。

修正後

#include <stdio.h>

int main()

{

unsigned int ua,ub,uc;

int tag;

scanf("%u%u%u",&ua,&ub,&uc);

scanf("%d",&tag);

if(tag<0||tag>95)printf("Error");

else {

if(tag>=64)

ua|=1<<(tag-64);

else if(tag>=32)

ub|=1<<(tag-32);

else uc|=1<<tag;

printf("ua=%u,ub=%u,uc=%u",ua,ub,uc);

}

return 0;

}

6.

#include <stdio.h>

int main()

{int n;

scanf("%d",&n);

for(int i=n;i>=1;i--)

{for(int h=i-1;h<n;h++)

printf(" ");

for(int j=2*i-1;j>=1;j--)

{

printf("*");

}

printf("\n");

}

for(int a=1;a<n;a++)

{for(int h=n;h>a;h--)

printf(" ");

for(int j=2*a+1;j>=1;j--)

{

printf("*");

}

printf("\n");

}

return 0;

}

這是考試時的程式碼,執行後的結果

可以注意到每行都多了一個空格,考試的時候不知道怎麼處理,越處理越亂。

晚上思考了一下改的程式碼如下

#include <stdio.h>

int main()

{

int n;

while(scanf("%d",&n)!=EOF){

for(int i=1;i<=n;i++)

{

for(int j=i-1;j>0;j--)printf(" ");

for(int h=2*n-(2*i-1);h>0;h--)printf("*");

printf("\n");

}

for(int i=2;i<=n;i++)

{

for(int j=i+1;j<=n;j++)printf(" ");

for(int h=2*i-1;h>0;h--)printf("*");

printf("\n");

}

}

return 0;

}

注意到

不要把問題想的太複雜,大迴圈的第一個i儘量簡單一點,往後寫小迴圈的時候才不會互相絆腳。

總結 考試時不要慌張,儘量把程式碼簡單化,遇到問題可以先重看一下題目看看是否漏了條件。不要慌!不要慌!不要慌!

放平心態,晚上補題時的心態相比考試放鬆了很多,效率和改bug能力比考試時多了n倍,放平心態最重要。