my self-examination about Miss.Yu's question(2017-1-(24-25))
2017-01-24 21:11
393 查看
1,牢记在C语言输入输出时,double对应的是lf,float对应的是f。
2,牢记很多函数比如pow之类的形参都是double,如果定义实参为整型,运算结果会出错。
3,对于三目运算符a?b:c;输出时不能写cout<<a?b:c<<endl;也不能写cout<<a?b<<endl:c<<endl.(具体常用函数见收藏)。
4:对于成绩转换题目:输入一个百分制的成绩t,将其转换成对应的等级,具体转换规则如下:
90~100为A;
80~89为B;
70~79为C;
60~69为D;
0~59为E;
应记住if和else if编译过程是先审查if,if条件过了,则else if的条件就默认带了if的对立事件条件,所以if条件的语法顺序很重要。
5,注意在scanf中,scanf(“%d”,&a【i】(或a+i)),不能直接写scanf(“%d”,a【i】)
6,给定一段连续的整数,求出他们中所有偶数的平方和以及所有奇数的立方和。
对于这种题,要考虑输入的两个数是否是第二个大于第一个,要学会swap两个数。
7,当遇到输入0结束的题目时,注意:
8.注意在C++中,定义char a【100】;cin>>a ;n=strlen(a);如果输入中带着空格,比如“
9.注意有用的算法:
isalpha
一种函数:判断字符ch是否为英文字母,
若为英文字母,返回非0(小写字母为2,大写字母为1)。
若不是字母,返回0。
isupper
原型:extern int isupper(int c);
头文件:<cctype>(旧版本的编译器使用<ctype.h>)
功能:判断字符c是否为大写英文字母
说明:当参数c为大写英文字母(A-Z)时,返回非零值,否则返回零。
附加说明: 此为宏定义,非真正函数。
islower
islower(测试字符是否为小写字母)
相关函数
isalpha,isupper
表头文件
#include<cctype>(旧版本的编译器使用<ctype.h>)
定义函数
int islower(int c)
函数说明
检查参数c是否为小写英文字母。
返回值
若参数c为小写英文字母,则返回TRUE,否则返回NULL(0)。
附加说明:此为宏定义,非真正函数。
Input输入数据包含多个测试实例,数据的第一行是一个整数n,表示测试实例的个数,然后是n行输入数据,每行是一个长度不超过50的字符串。
Output对于每组输入数据,输出一行。如果输入数据是C的合法标识符,则输出"yes",否则,输出“no”。
Sample Input
Sample Output
我的代码:
#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<cmath>
#include<iomanip>
#include<string.h>
using namespace std;
int main()
{
int n,i;
char r[100];
scanf("%d", &n);
getchar();//如果没有这个getchar,后面的gets会把回车读进去,产生错误,getchar先把回车读了,就不会产生错误。
while(n--)
{
int num;
gets(r);
num = strlen(r);
if (r[0] >= '0' && r[0] <= '9')
{
cout<<"no"<<endl;
continue;
}
for (i = 0; i < num; i++)
{
if (((r[i] >= 'A' && r[i] <= 'Z')||(r[i] >= 'a' && r[i] <= 'z')||(r[i] >= '0' && r[i] <= '9'))||r[i] == '_')
continue;
else
break;
}
if (i == num)
cout<<"yes"<<endl;
else cout<<"no"<<endl;
}
return 0;
}
注意getchar的用法!!!!
gets函数调用时,如果之前有输入变量的值,要注意用一个getchar()来消去回车。
否则 像代码#include<iostream>
#include<cstring>
#include<cctype>
#include<stdio.h>
using namespace std;
int main()
{
char r[100];
int a,b[100];
scanf("%d",&a);
while (a--)
{
gets(r);
puts(r);
}
return 0;
}
就会多读入一个回车。
多输出一个回车。
2,牢记很多函数比如pow之类的形参都是double,如果定义实参为整型,运算结果会出错。
3,对于三目运算符a?b:c;输出时不能写cout<<a?b:c<<endl;也不能写cout<<a?b<<endl:c<<endl.(具体常用函数见收藏)。
4:对于成绩转换题目:输入一个百分制的成绩t,将其转换成对应的等级,具体转换规则如下:
90~100为A;
80~89为B;
70~79为C;
60~69为D;
0~59为E;
应记住if和else if编译过程是先审查if,if条件过了,则else if的条件就默认带了if的对立事件条件,所以if条件的语法顺序很重要。
5,注意在scanf中,scanf(“%d”,&a【i】(或a+i)),不能直接写scanf(“%d”,a【i】)
6,给定一段连续的整数,求出他们中所有偶数的平方和以及所有奇数的立方和。
对于这种题,要考虑输入的两个数是否是第二个大于第一个,要学会swap两个数。
7,当遇到输入0结束的题目时,注意:
scanf()函数返回的值为:正确按指定格式输入变量的个数; 也即能正确接收到值的变量个数。
while(scanf("%d",&n)!=0) 输入0后还能继续输入
while(scanf("%d",&n),n)输入0后不能继续输入
scanf函数返回的是输入值的个数, (1)中输入0后返回的是1(因为1个值)肯定不和0相等了, 因此可以继续向下执行, (2)中时逗号表达式,不管你scanf语句是什么结果, 最后while判读的是后面的n值, 你输入0,结果当然是while语句不成立了!
8.注意在C++中,定义char a【100】;cin>>a ;n=strlen(a);如果输入中带着空格,比如“
ff ai_2”,则n = 2; 要想把两个空格记录到字符数组中,需要用gets函数。 即如果char a【100】;gets(a); n=strlen(a); 则n = 8.
9.注意有用的算法:
isalpha
一种函数:判断字符ch是否为英文字母,
若为英文字母,返回非0(小写字母为2,大写字母为1)。
若不是字母,返回0。
在标准c中相当于使用“ isupper( ch ) || islower( ch ) ”做测试,
isupper
原型:extern int isupper(int c);
头文件:<cctype>(旧版本的编译器使用<ctype.h>)
功能:判断字符c是否为大写英文字母
说明:当参数c为大写英文字母(A-Z)时,返回非零值,否则返回零。
附加说明: 此为宏定义,非真正函数。
islower
islower(测试字符是否为小写字母)
相关函数
isalpha,isupper
表头文件
#include<cctype>(旧版本的编译器使用<ctype.h>)
定义函数
int islower(int c)
函数说明
检查参数c是否为小写英文字母。
返回值
若参数c为小写英文字母,则返回TRUE,否则返回NULL(0)。
附加说明:此为宏定义,非真正函数。
isalnum
判断字符变量c是否为字母或数字,若是则返回非零,否则返回零。
10.Input输入数据包含多个测试实例,数据的第一行是一个整数n,表示测试实例的个数,然后是n行输入数据,每行是一个长度不超过50的字符串。
Output对于每组输入数据,输出一行。如果输入数据是C的合法标识符,则输出"yes",否则,输出“no”。
Sample Input
3 12ajf fi8x_a ff ai_2
Sample Output
no yes no
我的代码:
#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<cmath>
#include<iomanip>
#include<string.h>
using namespace std;
int main()
{
int n,i;
char r[100];
scanf("%d", &n);
getchar();//如果没有这个getchar,后面的gets会把回车读进去,产生错误,getchar先把回车读了,就不会产生错误。
while(n--)
{
int num;
gets(r);
num = strlen(r);
if (r[0] >= '0' && r[0] <= '9')
{
cout<<"no"<<endl;
continue;
}
for (i = 0; i < num; i++)
{
if (((r[i] >= 'A' && r[i] <= 'Z')||(r[i] >= 'a' && r[i] <= 'z')||(r[i] >= '0' && r[i] <= '9'))||r[i] == '_')
continue;
else
break;
}
if (i == num)
cout<<"yes"<<endl;
else cout<<"no"<<endl;
}
return 0;
}
注意getchar的用法!!!!
gets函数调用时,如果之前有输入变量的值,要注意用一个getchar()来消去回车。
否则 像代码#include<iostream>
#include<cstring>
#include<cctype>
#include<stdio.h>
using namespace std;
int main()
{
char r[100];
int a,b[100];
scanf("%d",&a);
while (a--)
{
gets(r);
puts(r);
}
return 0;
}
就会多读入一个回车。
多输出一个回车。
10. strupr () 原型:extern char *strupr(char *s); 用法:#include <string.h> 功能:将字符串s转换为大写形式 说明:只转换s中出现的小写字母,不改变其它字符。返回指向s的指针。 strlwr () 原型:extern char *strlwr(char *s); 用法:#include <string.h> 功能:将字符串s转换为小写形式 说明:只转换s中出现的大写字母,不改变其它字符。返回指向s的指针。 注意事项:在Linux的编译器中,有可能会编译不通过。
相关文章推荐
- my self-examination about Miss.Yu's question
- acm练习 零起点学算法78——牛牛 2017 02 24
- 在 Fedora24/25/26 中轻松安装 gcc 4.9
- C语言趣味一百道 第26题 2017_12_24
- 学习记录 2017_12_25 ~ 2017_12_31
- Dialog about college and College Entrance Examination
- Fedora 25/24/23 nVidia Drivers Install Guide
- 2017冬季24集训模拟-4.排座椅
- 2017-4-24(1493037086057未命名文件 测试资源是否正确上传
- 11-24 & 11-25 省选集训总结/题解
- leetcode之链表逆序翻转类-----92/206 逆序 24/25/61/143 按规则翻转 86/234 双指针分治 19/82/83/203 按规则删除
- 25 You are using the control file to maintain information about the database backups that are being
- 7-24 树种统计(25 分)
- 如果你也24 25 26岁……
- 【码云周刊第 25 期】2017 JavaScript 开发者的学习图谱
- OpenSSL 1.1.0f 25 May 2017 OpenSSL 1.0.1e-fips 11 Feb 2013性能比较
- Second question about PHP
- (23)函数概念 (24)函数定义格式和命名规范 (25) 函数执行与返回流程 (26)函数传参方式