『壹』 PTA中c語言編程問題(答案沒有給我滿分,請幫我指出一下我程序的錯誤)
#include<stdio.h>
intmain()
{
intn,a[11],i,temp,j;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(j=0;j<n;j++)
for(i=0;i<n-j-1;i++)//改了下這里當i=n-1時i+1就越界了,所以i<n-j-1
if(a[i]<a[i+1])
{temp=a[i];a[i]=a[i+1];a[i+1]=temp;}
for(i=0;i<n-1;i++)
printf("%d",a[i]);
printf("%d",a[i]);
return0;
}
『貳』 C語言中, #define SI_SetVal() PTA15 _OUT=1;是什麼意思,只需
接下來的語句中出現 SI_SetVal() 時,編譯器會自動用 PTA15 _OUT=1 代替
SI_SetVal()即為PTA15 _OUT=1
『叄』 編程c語言 PTA
#include<stdio.h>
intmain()
{
chara,b,c;
intnum;
scanf("%c%c%c",&a,&b,&c);
num=a+b+c;
printf("%c%c%c %d",c,b,a,num);
return0;
}
『肆』 c語言題目,pta里說n很大則不滿足(見圖)
#include<stdio.h>
intmain()
{
doubles=0,a=2,b=1;
intt,i,n;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
s=s+a/b;//將各項累加
t=a;
a=a+b;//將前一項的分子與分母之和作為下一項的分子
b=t;//將前一項的分子作為下一項的分母
}
printf("%.2lf ",s);
return0;
}
剛才嘗試將t改為double後,發現n=3000時,a,b溢出。
將程序作如下更改:
#include<stdio.h>
intmain()
{
doubles=0;
intn=0;
scanf("%d",&n);
doubletmp=2/1;
while(n--)
{
s+=tmp;
tmp=1/tmp+1;
}
printf("%.2lf ",s);
return0;
}
試試~
『伍』 PTA上C語言函數題,else if提交可過,if不能過
問題在於最後一個if和else配套上了,只要輸入不是全為空格或者全不符合前面的if條件就會出錯,因為一旦不是全為空格,就會導致執行else裡面的語句,部分符合前面的if條件同樣會導致執行else裡面的語句,這樣子的邏輯是錯的
『陸』 C語言【PTA】7-16編程題錯在哪裡了
#include<stdio.h>
intmain()
{
inta=0,b=0,c=0,d=0;
scanf("%d%d",&a,&b);
c=a/100;
d=a%100+b;
if(0<d) //這里錯了
{
while(59<d)
{
c++;
d=d-60;
}
}
else
{
while(0>d)
{
c--;
d=d+60;
}
}
printf("%d%02d ",c,d); //這里也改了
return0;
}