浙江理工大学 我的编程之路 零基础学C/C++ 200题 标程/题解
OJ地址:http://47.96.116.66/index.php
零基础学C/C++00——送分题-A+B Problem
/*
*浙江理工大学计算机协会
*严禁直接复制提交
*作弊行为将会被ACM校队禁止入队
*@Author: STZG
*@Language: C
*@Time: 7月25日
*/
/*======================================代码开始=====================================*/
#include //头文件
int main() //主函数
{
int a,b,c;
scanf("%d %d",&a,&b);//输入
c=a+b; //计算
printf("%d\n",c);//输出
return 0;
}
/*======================================代码结束=====================================*/
/*
*此题为OJ平台测试题
*零基础的同学应该从1001开始学习
*/
零基础学C/C++01——第一个程序Hello World!
/*
*浙江理工大学计算机协会
*严禁直接复制提交
*作弊行为将会被ACM校队禁止入队
*@Author: STZG
*@Language: C
*@Time: 7月26日
*/
/*======================================代码开始=====================================*/
#include int main()
{
printf("Hello World!\n");
return 0;
}
/*======================================代码结束=====================================*/
/*
*Hello World!小程序简介:
*“Hello, world"程序是指在计算机屏幕上输出“Hello,world”这行字符串的计算机程序,
*“hello, world”的中文意思是“你好,世界。”。
*这个例程在Brian Kernighan 和Dennis M. Ritchie合著的《The C Programme Language》使用而广泛流行。
*/
零基础学C/C++02——输出简单的句子
/*
*浙江理工大学计算机协会
*严禁直接复制提交
*作弊行为将会被ACM校队禁止入队
*@Author: STZG
*@Language: C
*@Time: 7月25日
*/
/*======================================代码开始=====================================*/
#include int main()
{
printf("Nice to meet you!\n");
return 0;
}
/*======================================代码结束=====================================*/
/*
*本题和1001原理相同,均为printf()函数的简单应用
*其中main()、printf()可以称之为函数、方法
*main()称之为主函数,是C语言/C++的程序入口,每一个可以独立运行的程序,必须包含主函数
*printf()是C中基本的输出函数,用于输出内容到控制台,它包含于stdio.h文件中
*/
零基础学C/C++03——Very Good!
/*
*浙江理工大学计算机协会
*严禁直接复制提交
*作弊行为将会被ACM校队禁止入队
*@Author: STZG
*@Language: C
*@Time: 7月25日
*/
/*======================================代码开始=====================================*/
#include int main(int argc, char *argv[])
{
printf("***************\n\n Very Good!\n\n***************\n");
return 0;
}
/*======================================代码结束=====================================*/
/*
*本题和1001、1002原理相同,均为printf()函数的简单应用
*其中\n为换行符,\称之为 转义字符 ,使得其后的n不再是原来含义,从而\n一起构成了换行符
*需要注意的是因为OJ平台的判题方式,注意空格
*如果多输出空格字符,会导致格式错误或者PE
*/
零基础学C/C++04——超简单模仿算术题
/*
*浙江理工大学计算机协会
*严禁直接复制提交
*作弊行为将会被ACM校队禁止入队
*@Author: STZG
*@Language: C
*@Time: 7月28日
*/
/*======================================代码开始=====================================*/
#include int main()
{
printf("%d\n",10-7);
return 0;
}
/*======================================代码结束=====================================*/
/*
*直接用10-7替换例子中的1+2即可
*
*/
零基础学C/C++05——再模仿一个算术题
/*
*浙江理工大学计算机协会
*严禁直接复制提交
*作弊行为将会被ACM校队禁止入队
*@Author: STZG
*@Language: C
*@Time: 7月28日
*/
/*======================================代码开始=====================================*/
#include int main()
{
printf("%d\n",9*10);
return 0;
}
/*======================================代码结束=====================================*/
/*
*同1004,直接替换即可
*在C语言中乘号用星号*表示.
*/
零基础学C/C++06——再来一题除法算术题
/*
*浙江理工大学计算机协会
*严禁直接复制提交
*作弊行为将会被ACM校队禁止入队
*@Author: STZG
*@Language: C
*@Time: 7月28日
*/
/*======================================代码开始=====================================*/
#include int main()
{
printf("%.1f\n",8/5.0);
return 0;
}
/*======================================代码结束=====================================*/
/*
*同1004,直接替换即可
*在C语言里2个整数相除结果还是整数,8除以5是1.5因为保留整数部分,所以结果是1拉
*8除以5.0结果才是1.6
*只有浮点数参与运算时,运算过程才会是实数的运算方式
*%d是控制输出的格式控制符
*%d 输出整数
*%f 输出带小数的数(浮点数)
*%.1f保留一位小数
*%.2f保留两位小数
*/
零基础学C/C++07——复杂一点的算式表达式
/*
*浙江理工大学计算机协会
*严禁直接复制提交
*作弊行为将会被ACM校队禁止入队
*@Author: STZG
*@Language: C
*@Time: 7月28日
*/
/*======================================代码开始=====================================*/
#include #include int main()
{
printf("%.2f\n",1+sqrt(3)/(4-2.1));
return 0;
}
/*======================================代码结束=====================================*/
/*
*函数sqrt()可以计算一个数的平方根
*sqrt(3.0)就是根号3
*不过不要忘了在最前面要加上这个头文件哦
*#include */
零基础学C/C++08——鹦鹉学舌1
/*
*浙江理工大学计算机协会
*严禁直接复制提交
*作弊行为将会被ACM校队禁止入队
*@Author: STZG
*@Language: C
*@Time: 7月28日
*/
/*======================================代码开始=====================================*/
#include int main()
{
int n;
scanf("%d",&n);
printf("%d\n",n);
return 0;
}
/*======================================代码结束=====================================*/
/*
*函数scanf()可以从控制台获取格式控制符代表的数据
*此函数也被包含在头文件 stdio.h 中
*/
零基础学C/C++09——a + b
零基础学C/C++10——a - b
零基础学C/C++11——买票找钱
零基础学C/C++12——求平均值
零基础学C/C++13——华氏摄氏温度转换
零基础学C/C++14——输出特殊值
零基础学C/C++15——输出特殊值II
零基础学C/C++16——求2个日期之间的天数
零基础学C/C++17——求2个时间之间的分钟数
零基础学C/C++18——三位数反转
零基础学C/C++19——交换变量
零基础学C/C++20——求圆柱体的表面积
零基础学C/C++21——求梯形面积
零基础学C/C++22——求正弦和余弦
零基础学C/C++23——AA制
/*
*浙江理工大学计算机协会
*严禁直接复制提交
*作弊行为将会被ACM校队禁止入队
*@Author: STZG
*@Language: C
*@Time: 7月28日
*/
/*======================================代码开始=====================================*/
#include int main(int argc, char *argv[]) {
int n;
double a,b,c;
scanf("%d",&n);
scanf("%lf%lf%lf",&a,&b,&c);
printf("%.2f\n",(a+b+c)/n);
return 0;
}
/*======================================代码结束=====================================*/
/*
*a,b,c是实数,因此需要float或者double表示
*
*/
零基础学C/C++24——判断奇偶数
零基础学C/C++25——判断某整数是正整数、负整数还是零
零基础学C/C++26——判断某整数是否既是5又是7的整数倍
零基础学C/C++27——整除
零基础学C/C++28—— 求较大的数
零基础学C/C++29—— 再求较大的数
零基础学C/C++30—— 判断是否直角三角形
零基础学C/C++31—— 闰年
零基础学C/C++32—— 等级分制度
零基础学C/C++33—— 参加程序设计竞赛
零基础学C/C++34—— 3个数比较大小
零基础学C/C++35—— 输出四位完全平方数
零基础学C/C++36——逆序输出
零基础学C/C++37——回文数
零基础学C/C++38——第几天
零基础学C/C++39——求方程的解
零基础学C/C++40——鸡兔同笼
零基础学C/C++41—— 求1+2+……+N的和
零基础学C/C++42——求n的阶乘
零基础学C/C++43——求多项式
零基础学C/C++44——求10个数的平均值
零基础学C/C++45——N个数找最大和最小
零基础学C/C++46——3n+1问题
零基础学C/C++47——继续求多项式
零基础学C/C++48——求多项式(含浮点)
零基础学C/C++49——求阶乘和
零基础学C/C++50——求最大公约数
零基础学C/C++51——完数
零基础学C/C++52——计算数列和2/1,3/2,5/3,8/5......
零基础学C/C++53——多组测试数据(a+b)
零基础学C/C++54——多组测试数据(a+b)II
零基础学C/C++55——多组测试数据(a+b)III
零基础学C/C++56——多组测试数据(求和)IV
零基础学C/C++57——多组测试数据输出I
零基础学C/C++58——多组测试数据输出II
零基础学C/C++59——多组测试数据输出III
零基础学C/C++60——求最大值
零基础学C/C++61——求最小值
零基础学C/C++62——求平均值
零基础学C/C++63——判断是否是素数
零基础学C/C++64——高斯定理
零基础学C/C++65——高斯变例
零基础学C/C++66——你比祖冲之厉害
/*
*浙江理工大学计算机协会
*严禁直接复制提交
*作弊行为将会被ACM校队禁止入队
*@Author: STZG
*@Language: C
*@Time: 7月31日
*/
/*======================================代码开始=====================================*/
#include int main(int argc, char *argv[]) {
int n;
double pi;
float f;
while(scanf("%f",&f)!=EOF){
n=0;
pi=0;
do{
n++;
if(n%2==0)
pi=pi-1.0/(2*n-1);
else
pi=pi+1.0/(2*n-1);
}while(1.0/(2*n-1)>=f);
printf("%.4f\n",pi*4);
}
return 0;
}
/*======================================代码结束=====================================*/
/*
*利用公式pai/4=1-1/3+1/5-1/7+...求pai的近似值,
*直到某一项的绝对值小于某个数f为止,我们可以通过控制f的大小来提高pai的精确性
*本题有精度问题,注意精度
*double数据类型在多次计算以后可能会有误差
*例如多次运算后应该是1.0000...的数据,其值可能是0.9999999...
*/
零基础学C/C++67——阶乘和
零基础学C/C++68——百鸡问题
零基础学C/C++69——猴子吃桃
零基础学C/C++70——绝配队伍
零基础学C/C++71——四叶玫瑰数
零基础学C/C++72——五角星数
零基础学C/C++73——最大公约数和最小公倍数
零基础学C/C++74——打印金字塔
零基础学C/C++75——双层金字塔
零基础学C/C++76——乘法口诀
零基础学C/C++77——求三角形面积
零基础学C/C++78——求奇数的乘积
零基础学C/C++79——平方和与立方和
零基础学C/C++80——求数列的和
零基础学C/C++81——数字菱形
零基础学C/C++82——数字菱形II
零基础学C/C++83——宁宁的奥数路
/*
*浙江理工大学计算机协会
*严禁直接复制提交
*作弊行为将会被ACM校队禁止入队
*@Author: STZG
*@Language: C
*@Time: 8月1日
*/
/*======================================代码开始=====================================*/
#include int main(int argc, char *argv[]) {
int a,b,c;
while(~scanf("%d%d%d",&a,&b,&c)){
if(a+b!=c){
printf("NO!\n");
}else{
int vis[10];
for(int i=1;i<10;i++)vis[i]=0;
while(a){
vis[a%10]++;
a/=10;
}
while(b){
vis[b%10]++;
b/=10;
}
while(c){
vis[c%10]++;
c/=10;
}
int k=1;
for(int i=1;i<10;i++)if(!vis[i])k=0;
if(k)
printf("YES!\n");
else
printf("NO!\n");
}
}
return 0;
}
/*======================================代码结束=====================================*/
/*
*先判断a+b==c
*如果是,分解每一个三位数,用vis记录每个数字的出现次数
*判断每一个数是不是存在
*/
零基础学C/C++84——奇偶ASCII值判断
/*
*浙江理工大学计算机协会
*严禁直接复制提交
*作弊行为将会被ACM校队禁止入队
*@Author: STZG
*@Language: C
*@Time: 8月1日
*/
/*======================================代码开始=====================================*/
#include int main(int argc, char *argv[]) {
char ch;
ch=getchar();
if(ch%2)
printf("YES\n");
else
printf("NO\n");
return 0;
}
/*======================================代码结束=====================================*/
/*
*getchar()可以获取一个字符
*因为每一个字符对应ascll字码表
*而char类型的本质还是二进制存储的数
*因此可以直接判断字符的奇偶性,不用考虑是一个字符类型,在做运算时C/C++程序会自动转换为int类型
*这种转换称之为隐式类型转换
*/
零基础学C/C++85——完美数
/*
*浙江理工大学计算机协会
*严禁直接复制提交
*作弊行为将会被ACM校队禁止入队
*@Author: STZG
*@Language: C
*@Time: 8月1日
*/
/*======================================代码开始=====================================*/
#include int main(int argc, char *argv[]) {
int a[]={6, 28, 496, 8128, 33550336};
int b[10];
int m,n,cnt=0;
while(~scanf("%d%d",&m,&n)&&m+n){
cnt=0;
for(int i=0;i<5;i++)
if(m<=a[i]&&a[i]<=n)b[++cnt]=a[i];
if(cnt)
for(int i=1;i<=cnt;i++){
if(i==cnt)
printf("%d\n",b[i]);
else
printf("%d ",b[i]);
}
else
printf("No\n");
}
return 0;
}
/*======================================代码结束=====================================*/
/*
*暴力枚举是跑不出来的,能计算到地球毁灭信不信
*所以本题根据提示
*判断每个数是不是在所给的区间范围即可
*/
零基础学C/C++86——亲和数
零基础学C/C++87——数字菱形III
零基础学C/C++88——三个齿轮啮合
/*
*浙江理工大学计算机协会
*严禁直接复制提交
*作弊行为将会被ACM校队禁止入队
*@Author: STZG
*@Language: C
*@Time: 8月1日
*/
/*======================================代码开始=====================================*/
#include //求最大公约数
int max_public_num(int s1,int s2)
{
if(s1
零基础学C/C++89——速算24点
零基础学C/C++90——数组输出
零基础学C/C++91——逆序输出
零基础学C/C++92——找出数组中最大元素的位置(下标值)
零基础学C/C++93——Fibonacci数列
零基础学C/C++94——数组中查找数
零基础学C/C++95——数组中删数
零基础学C/C++96——数组中删数II
零基础学C/C++97——数组中插入一个数
零基础学C/C++98——打印所有低于平均分的分数
零基础学C/C++99——青年歌手大奖赛_评委会打分
零基础学C/C++100——开灯问题
/*
*浙江理工大学计算机协会
*严禁直接复制提交
*作弊行为将会被ACM校队禁止入队
*@Author: STZG
*@Language: C
*@Time: 8月3日
*/
/*======================================代码开始=====================================*/
#includeint main(){
int n;
while(~scanf("%d",&n)){
int a[200];
for(int i=1;i<=n;i++)a[i]=0;
for(int i=1;i<=n;i++){
for(int j=i;j<=n;j+=i){
a[j]=1-a[j];
}
}
int ans=0;
for(int i=1;i<=n;i++){
if(a[i]==1)ans++;
}
printf("%d\n",ans);
}
}
/*======================================代码结束=====================================*/
/*
*简单题
*模拟即可
*注意多组
*数组每次需要归零
*/
零基础学C/C++101——最大数与数列最后一个数交换
零基础学C/C++102——最小数与数列第一个数交换
零基础学C/C++103——找出一个数组中出现次数最多的那个元素
零基础学C/C++104——查找某一个数
零基础学C/C++105——元素前移1位
零基础学C/C++106——进制转换
零基础学C/C++107——插入一个数到数列中
零基础学C/C++108——程序设计竞赛
零基础学C/C++109——省赛归来
零基础学C/C++110——N个数从小到大排序
零基础学C/C++111——N个数从大到小排序
零基础学C/C++112——偶数排序
零基础学C/C++113——并列排名
零基础学C/C++114——直接插入排序
零基础学C/C++115——校友捐款
零基础学C/C++116——矩阵转置
零基础学C/C++117——输出矩阵
零基础学C/C++118——弓型矩阵
零基础学C/C++119——矩阵整理
零基础学C/C++120——矩阵对角线求和
零基础学C/C++121——判断是否上三角矩阵
零基础学C/C++122——杨辉三角
零基础学C/C++123——矩阵鞍点
零基础学C/C++124——海选女主角
零基础学C/C++125——矩阵乘积
零基础学C/C++126——回型矩阵
零基础学C/C++127——矩阵下三角元素之和
零基础学C/C++128——矩阵计算
零基础学C/C++129——蛇行矩阵
零基础学C/C++130——二维数组右上角乘以x
零基础学C/C++131——二维数组左下角置0
零基础学C/C++132——边界均值
零基础学C/C++133——矩阵A+A'
零基础学C/C++134——对称矩阵
零基础学C/C++135——稀疏矩阵
零基础学C/C++137——统计字母数字等个数
/*
*浙江理工大学计算机协会
*严禁直接复制提交
*作弊行为将会被ACM校队禁止入队
*@Author: STZG
*@Language: C
*@Time: 8月6日
*/
/*======================================代码开始=====================================*/
#include#includeint main(){
char a[150];
int zm,sz,kg,qt,i;
while(gets(a)!=NULL){
zm=0;sz=0;kg=0;qt=0;
for(i=0;a[i]!='\0';i++){
if('A'<=a[i] && a[i]<='Z' || 'a'<=a[i] && a[i]<='z'){
zm++;
}else if('0'<=a[i] && a[i]<='9'){
sz++;
}else if(' '==a[i]){
kg++;
}else{
qt++;
}
}
printf("%d %d %d %d\n",zm,sz,kg,qt);
}
return 0;
}
/*======================================代码结束=====================================*/
/*
*简单题
*本题未知原因不能用i
零基础学C/C++138——查找最大元素
零基础学C/C++140——统计元音
/*
*浙江理工大学计算机协会
*严禁直接复制提交
*作弊行为将会被ACM校队禁止入队
*@Author: STZG
*@Language: C
*@Time: 8月6日
*/
/*======================================代码开始=====================================*/
#include#includeint main()
{
int n,a,e,i,o,u,j,k;
while(scanf("%d",&n)!=EOF){
getchar();
for(k=1;k<=n;k++){
char s[150];
a=0;e=0;i=0;o=0;u=0;
gets(s);
for(j=0;j<=strlen(s)-1;j++){
if(s[j]=='a'){
a++;
}else if(s[j]=='e'){
e++;
}else if(s[j]=='i'){
i++;
}else if(s[j]=='o'){
o++;
}else if(s[j]=='u'){
u++;
}
}
if(k==n){
printf("a:%d\ne:%d\ni:%d\no:%d\nu:%d\n",a,e,i,o,u);
}else{
printf("a:%d\ne:%d\ni:%d\no:%d\nu:%d\n\n",a,e,i,o,u);
}
}
}
return 0;
}
/*======================================代码结束=====================================*/
/*
*简单题
*在输入n以后会输入一个回车符
*回车符可以被gets()函数读取
*所以需要用getchar()函数读取输入n后的一个回车符
*防止gets读到一个空字符串
*/
零基础学C/C++141——回文串
零基础学C/C++142——单数变复数
零基础学C/C++143——绝对公正的裁判
零基础学C/C++144——首字母变大写
零基础学C/C++145——进制转换II
零基础学C/C++146——C语言合法标识符
零基础学C/C++147——统计每个字母个数
零基础学C/C++148——字符串整理
零基础学C/C++149——重组字符串
零基础学C/C++150——统计元音字母数
零基础学C/C++151——检索大写字母
零基础学C/C++152——统计单词个数
零基础学C/C++153——恺撒加密
零基础学C/C++154——加密程序2
零基础学C/C++155——句子比较大小
零基础学C/C++156——删除前导*
零基础学C/C++157——保留尾部*
零基础学C/C++158——删除中间的*
零基础学C/C++159——最长字符串
零基础学C/C++160——字符串
零基础学C/C++161——求阶乘的函数
零基础学C/C++162——求阶乘和
零基础学C/C++163——判断是否是素数的函数
零基础学C/C++164——素数判定
零基础学C/C++165——输出素数
零基础学C/C++166——求组合数
零基础学C/C++167——判断是否完数
零基础学C/C++168——统计数字
零基础学C/C++169——调用函数,求三个数中最大数
零基础学C/C++170——输出学生信息
零基础学C/C++171——年龄排序
零基础学C/C++172——猴子选大王
零基础学C/C++173——桌面窗体重叠
零基础学C/C++174——作业统计
零基础学C/C++175——身高问题
零基础学C/C++176——生日相同问题
零基础学C/C++177——集合运算
零基础学C/C++178——成绩统计
零基础学C/C++179——注册账号
零基础学C/C++180——数字变化
零基础学C/C++181——猜拳
零基础学C/C++182——墨汁
零基础学C/C++183——数组逆序
零基础学C/C++184——吉祥数
零基础学C/C++185——行列转换
零基础学C/C++186——支撑数
零基础学C/C++187——美丽的黄山
零基础学C/C++188——编字典
零基础学C/C++189——模拟计算器
零基础学C/C++190——冒泡排序
零基础学C/C++191——字母统计
零基础学C/C++192——陶陶摘苹果
零基础学C/C++193——插入排序
零基础学C/C++194——夏令营旗手
零基础学C/C++195——记录信息
零基础学C/C++196——排除异形基因
零基础学C/C++197——回文数个数
零基础学C/C++198——数的计算
零基础学C/C++199——孪生素数