从坐牢到入门的程序设计(10)
开始时间2023-07-05 14:01:17
结束时间2023-07-05 14:39:11
前言:唔呀呼!
L1-050 倒数第N个字符串
一、题目编号及题目说明
二、程序功能测试及说明
输入字符串长度和倒数多少个数字,输出相应字符串。
三、程序设计思路及结构说明
首先读取两个整数m和n,m表示字母串的长度,n表示要转换的数字。创建一个字符数组a,用于保存字母串。将数组a中的所有元素初始化为字母'z'。循环m次,将数组a的前m个元素赋值为字母'z'。再次循环m次,计算并赋值变量b和c的值。变量b表示26的幂次方,即26^(m-i-1)。变量c表示第i个字母的值,通过公式(n-1)/b%26计算。将字母a[i]减去c,并输出字符a[i]。输出换行符。返回0,表示程序正常结束。
四、程序源代码
#include<bits/stdc++.h> using namespace std; int main(){ int m,n; cin>>m>>n; char a[6]; int i,b,c; for(i=0;i<m;i++){ a[i]='z'; } for(i=0;i<m;i++){ b=pow(26,m-i-1); c=(n-1)/b%26; a[i]=a[i]-c; printf("%c",a[i]); } printf("\n"); return 0; }
五、题目评分
L1-051 打折
一、题目编号及题目说明
二、程序功能测试及说明
输入两个数,第一个数为商品原价,第二个数为打折数目,最后输出打折后的价格。
三、程序设计思路及结构说明
首先读取两个浮点数a和b。创建一个浮点数变量c。将c赋值为a乘以b再除以10。使用printf函数以"%.2f"的格式输出变量c,保留两位小数。返回0,表示程序正常结束。
四、程序源代码
#include<bits/stdc++.h> using namespace std; int main() { float a,b; cin>>a>>b; float c; c=a*b/10; printf("%.2f\n",c); return 0; }
五、题目评分
L1-052 2018我们要赢
一、题目编号及题目说明
二、程序功能测试及说明
输出两行字符串。
三、程序设计思路及结构说明
无输入直接输出两行字符。
四、程序源代码
include<bits/stdc++.h> using namespace std; int main() { printf("2018\nwo3 men2 yao4 ying2 !\n"); return 0; }
五、题目评分
L1-053 电子汪
一、题目编号及题目说明
二、程序功能测试及说明
根据输入的两个数的和输出Wang!。
三、程序设计思路及结构说明
吸收两个数并求和,然后使用循环打印“Wang!”,次数为和。
四、程序源代码
#include<bits/stdc++.h> using namespace std; int main() { int a,b; cin>>a>>b; int c=a+b,i=0; for(i=0;i<c;i++) { printf("Wang!"); } printf("\n"); return 0; }
五、题目评分
L1-054 福到了
一、题目编号及题目说明
二、程序功能测试及说明
读取一个字符和一个整数,然后根据输入的内容生成一个图案。
三、程序设计思路及结构说明
首先定义了一个字符变量 c 和一个整数变量 n。
然后定义了一个字符串数组 s,大小为 111。
使用 scanf 函数读取一个字符和一个整数,并将其赋值给 c 和 n。
使用 getchar 函数读取换行符。
使用 getline 函数依次读取 n 行字符串,存入字符串数组 s 中。
定义一个布尔变量 isSame 并初始化为 true。
进行两层循环遍历字符串数组 s,比较对应位置上的字符是否相同,若有不相同的字符,则将 isSame 置为 false。
如果所有字符都相同,则输出提示信息 "bu yong dao le"。
再次使用两层循环遍历字符串数组 s,并根据字符的空格与否输出相应的字符或空格。
返回 0。
四、程序源代码
#include<bits/stdc++.h> using namespace std; int main() { char c; int n; string s[111]; scanf("%c %d",&c,&n); getchar(); for(int i=0;i<n;i++){ getline(cin,s[i]); } bool isSame =true; for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ int i2=n-i-1; int j2=n-j-1; if(s[i2][j2]!=s[i][j]) isSame=false; } } if(isSame){ printf("bu yong dao le\n"); for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ if(s[i][j]==' ') printf(" "); else printf("%c",c); } printf("\n"); } return 0; } for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ int i2=n-i-1; int j2=n-j-1; if(s[i2][j2]==' ') printf(" "); else printf("%c",c); } printf("\n"); } return 0; }
五、题目评分
L1-055 谁是赢家
一、题目编号及题目说明
二、程序功能测试及说明
这段代码是一个简单的比较和计算程序。它接收输入的pa和pb,以及a、b、c三个数,然后进行一些比较和计算,最后输出结果。
三、程序设计思路及结构说明
代码会计算count = a + b + c,然后根据条件判断进行输出。如果pa大于pb且count不等于3,则输出"The winner is a: pa + (3 - count)";否则输出"The winner is b: pb + count"。
四、程序源代码
#include<bits/stdc++.h> using namespace std; int main() { int pa,pb; int count,a,b,c; cin>>pa>>pb>>a>>b>>c; count=a+b+c; if(pa>pb&&count!=3) { printf("The winner is a: %d + %d\n",pa,3-count); } else{ printf("The winner is b: %d + %d\n",pb,count); } return 0; }