笔记:
1. strchr函数 <string.h>头文件
char *strchr(const char *str, int c) //str字符串中c字符的第一次出现的位置,如果未找到返回NULL
2. if(条件语句)
条件语句运算结果不是0则执行if语句块
2054
Problem Description Give you two numbers A and B, if A is equal to B, you should print "YES", or print "NO".
Input each test case contains two numbers A and B.
Output for each case, if A is equal to B, you should print "YES", or print "NO".
Sample Input
1 2
Sample Output
NO
#include<stdio.h>
#include<string.h>
void delzero(char a[]);
int main()
{
char a[100000],b[100000]; //数组要大一些,不然会Runtime Error(ACCESS_VIOLATION)
while(scanf("%s %s",&a,&b)!=EOF){
delzero(a);
delzero(b);
if(strcmp(a,b)==0){
printf("YES\n");
}
else{
printf("NO\n");
}
}
return 0;
}
//函数功能:如果有小数点并且末尾有0,消除0
void delzero(char a[]){
if(strchr(a,'.')){ //判断是否有小数点
int i = strlen(a)-1;
while(a[i]=='0'){
a[i] = '\0';
i--;
}
}
if(a[strlen(a)-1]=='.'){
a[strlen(a)-1]='\0'; //将最后一位小数点消除
}
}
2055
Problem Description we define f(A) = 1, f(a) = -1, f(B) = 2, f(b) = -2, ... f(Z) = 26, f(z) = -26; output the result of y+f(x).
Input On the first line, contains a number T.then T lines follow, each line is a case.each case contains a letter and a number.
Output for each case, you should the result of y+f(x) on a line.
Sample Input
2
R 1
g 3
Sample Output
19
-4
#include<stdio.h>
void delzero(char a[]);
int main()
{
int inputnum;
scanf("%d",&inputnum);
getchar();
for(; inputnum!=0; inputnum--){
char c;
int a;
scanf("%c %d",&c,&a);
getchar();
int sum = a;
if(c>=65&&c<=90){
sum = sum+(c-'A'+1);
}
else{
sum = sum-(c-'a'+1);
}
printf("%d\n",sum);
}
return 0;
}