‘壹’ 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;
}