⑴ 关于PTA里面程序设计的问题,题目简单,细节太严,真不知道哪里出错了!求大佬解答!
很明显 你没有按照要求去做:
输入格式:输入在第一行给出两个整数A和B(-100≤A,B≤100),数字间以空格分隔。
应该是
int a=-200,b=-200;
while(a>100 || b >100 || a<-100||b<-100)
{
scanf("%d %d",&a,&b);
}
输出格式:在一行中输出A乘以B的值。
应该是printf("%d ",a*b);
⑵ pta的题自己代码运行答案没问题,提交显示段错误,请高手指出错误
错误原因是,他要求输入最多1000个整数,所以a数组开小了
数据的范围也不是0~99所以b数组开100也不对
正确方法是,把a数组开到1000大小,排序然后统计,排完序后,同样的数一定挨在一起
这样就可以顺序的统计了
⑶ 字符串输入%s 和char不匹配 pta的题,在codeblocks上可以运行但是报警告在提交代码报编译错误
char 对应 %c
~~~~~~~~~~~~
⑷ 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;
}
⑸ 题目如下图,我的代码运行是没错的可是提交上pta上就提示段错误!,代码如下,请指出错误,谢谢!
#include<iostream>
#include<list>
#include<string>
#include<iterator>
#include<algorithm>
usingnamespacestd;
voidOutPut(chari){
cout<<i;
}
intmain()
{
stringstr;
cin>>str;
list<char>tmp;
for(inti=0;i<str.size();i++)
tmp.push_back(str[i]);
tmp.sort();
for_each(tmp.begin(),tmp.end(),OutPut);
return0;
}
⑹ 为什么我c语言里面运行结果正确,到pta里面就说编译错误
不同语言语法规则不一样,甚至不同编译器语法规则都不一样。
⑺ 这是我写的代码,可是提交上pta就会显示格式错误请问我有什么错了吗,应该怎样改善
#include<stdio.h>
#include<math.h>
intmain()
{doublea,b,c,d,e,f;
scanf("%lf%lf%lf%lf%lf%lf",&a,&b,&c,&d,&e,&f);
doubleAB,BC,AC,ab,bc,ac;
ab=(a-c)*(a-c)+(b-d)*(b-d);
bc=(c-e)*(c-e)+(d-f)*(d-f);
ac=(a-e)*(a-e)+(b-f)*(b-f);
AB=sqrt(ab);
BC=sqrt(bc);
AC=sqrt(ac);
if((AB<BC+AC)&&(BC<AB+AC)&&(AC<AB+BC))
{
doublel=AB+BC+AC;
doubleP=l/2;
doubles=sqrt(P*(P-AB)*(P-BC)*(P-AC));
printf("L=%.2f,A=%.2f",l,s);}//这里好像没有换行
else
{printf("Impossible");
}
return0;
}
⑻ c++这题为什么在PTA上一直错误
我感觉for循环i应该是小于x,而不是小于等于x
⑼ 在PTA平台上,显示答案错误,哪出了问题
这里错了吧
⑽ 在VS上正常运行,为什么在pta上就显示部分错误,用c++编译的
我看了一下图中的PAT的题,研究了一下。
在VS上当然能正常运行(你这个程序本身就没有编译错误嘛),但是算法出现了问题。不应该用do while循环,因为do while循环总会执行一次,举个例子,假设输入的为1,那么将会造成结果为2(实际为0)。所以应当用while循环。
还有就是那个开头判断输入是否越界的if不用写,因为测试输入永远是按照题意的,不会出界。
这是改进后的代码(测试了可以全对):
#include<iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int j = 0;
while (n != 1)
{
int i = n % 2;
if (i == 0)
{
n = n / 2;
}
else
{
n = (n * 3 + 1) / 2;
}
j++;
}
cout << j << endl;
return 0;
}