今天做了一个第一题就半天不过。原理评测系统对空格什么的要求如此严格。
#include<stdio.h>
int main(){
int a=0,b=0;
scanf("%d%d",&a,&b);
printf("%d + %d = %d\n",a,b,a+b);
printf("%d - %d = %d\n",a,b,a-b);
printf("%d * %d = %d\n",a,b,a*b);
printf("%d / %d = %d\n",a,b,a/b);
return 0;
}
输出格式里面有空格的,一开始连\n都没有加,汗
后来又写了第二题,第一次提交对一半,得了4分。后来发现
inch=(int)((cm/30.48-foot)*12);式子外面的大括号一定要加的,不能写成<pre name="code" class="cpp"> inch=(int)(cm/30.48-foot)*12;那样就导致了得4分的后果!恩一定要完全保证优先级
#include<stdio.h>
int main(){
int cm=0,foot=0,inch=0;//定义厘米,英寸
scanf("%d",&cm);
foot=(int)cm/30.48;//直接取整即可?将小数强制性转换
inch=(int)((cm/30.48-foot)*12);//这里不用强制性转换吧
printf("%d %d\n",foot,inch);
return 0;
}
pat A level 的一题,到现在没过,问题出在输出string类上面,也是醉了,看不出来啊,不会调试
#include<stdio.h>
#include<string>
using namespace std;
string print(int i){
string result="";
switch(i){
case 0:result="zero";break;
case 1:result="one";break;
case 2:result="two";break;
case 3:result="three";break;
case 4:result="four";break;
case 5:result="five";break;
case 6:result="six";break;
case 7:result="seven";break;
case 8:result="eight";break;
case 9:result="nine";break;
}
return result;
}
int main(){
int str[3]={0,0,0};
int in=0,out=0,i=0,j=0;
scanf("%d",&in);
while(in!=0){
out=out+in%10;
in/=10;
//i++;
}
//算了一下,输入的数字最多是100个9,那样的话和也就是900,所以最终输出不超过三位数
while(out!=0){
str[i]=out%10;
out/=10;
i++;
}
for(j=i;j<=0;j--){
printf("%s ",print(str[j]));
//puts(print(str[j]));
}
printf("\n");
}