单身狗继续干!!,5.20,5.21代码是我男盆友哈哈哈哈
A 1011 World Cup Betting
算法简单,但是读不懂题是硬伤!!!
总是会出一些细节错误,思维不缜密
A 1006 Sign in and Sign out
与B1028人口普查类似,结构体,时间处理
A 1036 Boys vs Girls
struct student{
char name[12];
char gender;
char id[12];
int score;
}stu;
定义结构体,获取输入,scanf("%s %c %s %d",stu.name,&stu.gender,stu.id,&stu.score);
注意:stu.name为数组首地址,不需要加&了,否则出错
B 1036 跟奥巴马一起编程
简单题
整数除2做四舍五入操作时可通过判断它是否是奇数来解决,以避免浮点数的介入。其他情况碰到再说
B 1027 打印沙漏
没有思路
设未知数,根据已知条件列数学表达式,解出未知数。
三个数据:
1.三角形的底边拥有的字符数
2.每行非空格字符输出之前需要输出的空格数
3.剩下多少个题目给定的字符不输出
输出时字符前有空格,字符后没有空格,否则出现格式错误。
C语言中数学表达式在math.h头文件中
sqrt()函数的参数必须是浮点数
A 1031 Hello World for U
类似B 1027 打印沙漏,首先要分析出数学关系:n1=n3=(len+2)/3,n2=n1+(len+2)%3,space=n2-2
输出两种方式:1 二维数组,从上往下最左侧字符,从左往右最底部,从下往上最右侧;2 直接输出,设置两个变量i=0,j=len-1,i++,j--,分别指向字符数组首端和尾端,代码如下
#include <stdio.h>
#include <string.h>
int main(){
char str[90];
scanf("%s",str);
int len=strlen(str);
int n1=(len+2)/3,n2=(len+2)-2*n1;
int space=n2-2;
//打印前n1-1行
for(int i=0,j=len-1;i<n1-1;i++,j--){
printf("%c",str[i]);
for(int k=0;k<space;k++){
printf(" ");
}
printf("%c\n",str[j]);
}
//打印最后一行
for(int i=0;i<n2;i++){
printf("%c",str[n1-1+i]);
}
}
字符串处理函数在string.h头文件中
获取C/C++字符串字符数组长度(strlen,sizeof区别)
B 1022 D进制的A+B
考点:十进制转任意进制,“除基取余法”,除X(进制)取余,倒排
ans[i]=a%x;
a=a/x;
B 1037 在霍格沃兹找零钱
类似上一题% /运用
将所给金钱转换成以最小单位表示的数量,运算结束后,再转换成原格式。注意单位间的换算关系
A 1019 General Palindromic Number
考点:十进制转任意进制+回文数
编程时可以写成函数的部分最好独立出来,不要混到一起写!坏习惯
A 1027 Colors in Mars
参考书上代码,超级简洁。
关键:168<,任意一位小于等于168的十进制数都可以用两位13进制数表示,且x=a*+b*,其中a=x/13,b=x%13
A 1058 A+B in Hogwarts
哈利波特世界金钱进制问题,%,/运用,注意换算关系
B 1006 换个格式输出整数
考点:通过%,/运算获取数字的个十百等位
B 1021 各位数统计
以字符数组的形式输入题目给定的正整数N,进行算数运算时注意将字符数字转换成整数型数字,否则出错
字符型数字ch转换为整数型数字:ch-'0'
大写字母转换为小写字母:’X‘-'A'+'a'
B 1031 查验身份证
正常题目,但是循环判断较复杂。
用了break,随后有一个if判断循环是否正常退出;break后面的语句不执行立即跳出循环。
设置了一个信号标志,判断是否都正确。
B 1002 写出这个数
之前知识点综合