赞
踩
临近期末考,我重新用C语言(有些必要的也用C++作为第二种方法)写了一遍之前第一阶段作业的题目,直接放代码了,有题目思路方面的问题可以私信或私聊我。我就不解释思路了,因为题目数量太多啦。这部分也都是些基础题,不想挂科的友友这些题都必须会写。Problem 0-9和最后几个题马上会更新。
参考题解:
- #include <stdio.h>
- #include <math.h>
- int main(){
- //问题 a: 求x的n次方
- int x,n;scanf("%d%d",&x,&n);
- int ans = pow(x,n);
- printf("%d",ans);
- return 0;
- }
参考题解:
- #include <stdio.h>
- int main(){
- //问题 b: A-B问题
- int a,b;
- while(~scanf("%d %d",&a,&b)){
- if(a==0&&b==0) break;
- printf("%d\n",a-b);
- }
- return 0;
- }
参考题解:
- #include <stdio.h>
- int main(){
- //问题 c: 去噪平均数
- double ans = 0;
- int num,cnt = 0;
- while(~scanf("%d",&num)){
- if(num==-1) break;
- if(num<=int(1e4)){
- ans+=num;
- cnt++;
- }
- }
- if(cnt) printf("%.3lf",ans/cnt);
- else printf("no data");
- return 0;
- }

参考题解:
- #include <stdio.h>
- #include <math.h>
- int main(){
- //问题 d: 求Pi的值
- double pi4 = 0;
- int n;scanf("%d",&n);
- for(int i = 1;i<=n;i++){
- pi4+= 1.0*pow(-1,i-1)/(2*i-1);
- }
- printf("%.10lf",pi4*4);
- return 0;
- }
参考题解:
- #include <stdio.h>
- #include <math.h>
- int main(){
- //问题 e: 计算某公式
- int n;scanf("%d",&n);
- double ans = 0;
- for(int i = 1;i<=n;i++){
- ans += 1.0*pow(-1,i-1)/(2*i-1);
- }
- printf("%.3lf",ans);
- return 0;
- }
参考题解:
- #include <stdio.h>
- int main(){
- //问题 f: C语言程序设计教程(第三版)课后习题6.3
- int n;scanf("%d",&n);
- int ans = 0;
- for(int i = 1;i<=n;i++){
- int temp = 0;
- for(int j = 1;j<=i;j++){
- temp = temp*10+2;
- }
- ans += temp;
- }
- printf("%d",ans);
- return 0;
- }
参考题解:
- #include <stdio.h>
- #include <math.h>
- int main(){
- //问题 g: 判断直角三角形
- int a,b,c;
- while(~scanf("%d %d %d",&a,&b,&c)){
- if(pow(a,2)+pow(b,2)==pow(c,2)||pow(a,2)+pow(c,2)==pow(b,2)||pow(b,2)+pow(c,2)==pow(a,2)) printf("Yes\n");
- else printf("No\n");
- }
- return 0;
- }
参考题解:
- #include <stdio.h>
- int factorial(int num){
- int res = 1;
- for(int i = 1;i<=num;i++) res*=i;
- return res;
- }
- int main(){
- //问题 h: n!求和
- int n;scanf("%d",&n);
- int ans = 0;
- for(int i = 1;i<=n;i++) ans+=factorial(i);
- printf("%d",ans);
- return 0;
- }
参考题解:
- #include <stdio.h>
- int main(){
- //问题 i: 画#字符正方形
- int n;scanf("%d",&n);
- for(int i = 1;i<=n;i++){
- for(int j = 1;j<=n;j++) printf("#");
- printf("\n");
- }
- return 0;
- }
参考题解:
- #include <stdio.h>
- int main(){
- //问题 j: 画#字符长方形
- int n,m;scanf("%d %d",&n,&m);
- for(int i = 1;i<=n;i++){
- for(int j = 1;j<=m;j++) printf("#");
- printf("\n");
- }
- return 0;
- }
参考题解:
- #include <stdio.h>
- int main(){
- //问题 k: 画字符平行四边形
- int a,b;char c;scanf("%d %d %c",&a,&b,&c);
- for(int i = 1;i<=b;i++){
- for(int j = 1;j<=i-1;j++) printf(" ");
- for(int j = 1;j<=a;j++) printf("%c",c);
- printf("\n");
- }
- return 0;
- }
参考题解:
- #include <stdio.h>
- int main(){
- //问题 l: 画字符三角形
- char c;scanf("%c",&c);
- for(int i = 1;i<=7;i++){
- for(int j = 1;j<=7-i;j++) printf(" ");
- for(int j = 1;j<=2*i-1;j++) printf("%c",c);
- printf("\n");
- }
- return 0;
- }
参考题解:
- #include <stdio.h>
- int main(){
- //问题 m: 九九乘法表
- for(int i = 1;i<=9;i++){
- for(int j = 1;j<=i;j++){
- if(j == 1) printf("%2d *%2d = %2d",j,i,j*i);
- else printf(" %2d *%2d = %2d",j,i,j*i);
- }
- printf("\n");
- }
- return 0;
- }
参考题解:
- #include <stdio.h>
- #include <math.h>
- int main(){
- //问题 n: 水仙花数
- for(int i = 100;i<1000;i++){
- if(pow(i/100,3)+pow(i/10%10,3)+pow(i%10,3)==i) printf("%d\n",i);
- }
- return 0;
- }
参考题解:
- #include <stdio.h>
- #include <string.h>
- int shoes[105];
- int main(){
- //问题 o: 水题欢乐多
- int n,a,b;
- while(~scanf("%d %d %d",&n,&a,&b)){
- memset(shoes,0,sizeof shoes);
- for(int i = 1;i<=n;i++) scanf("%d",&shoes[i]);
- int maxn = shoes[1];
- for(int i = 1;i<=n;i++){
- if(a+shoes[i]<=b&&shoes[i]>maxn) maxn = shoes[i];
- }
- printf("%d\n",maxn);
- }
- return 0;
- }

参考题解:
- #include <stdio.h>
- int isPrime(int num){
- if(num<=1) return 0;
- for(int i = 2;i*i<=num;i++) if(num%i==0) return 0;
- return 1;
- }
- int main(){
- //问题 p: 判决素数个数
- int x,y;scanf("%d %d",&x,&y);
- int cnt = 0;
- for(int i = x;i<=y;i++){
- if(isPrime(i)) cnt++;
- }
- printf("%d",cnt);
- return 0;
- }

参考题解:
- #include <stdio.h>
- int main(){
- //问题 q: 圣诞树
- int h,n;scanf("%d %d",&h,&n);
- for(int i = 1;i<=h;i++){
- for(int j = 1;j<=n;j++){
- if(j!=n){
- for(int k = 1;k<=h-i;k++) printf(" ");
- for(int k = 1;k<=2*i-1;k++) printf("*");
- for(int k = 1;k<=h-i;k++) printf(" ");
- }else{
- for(int k = 1;k<=h-i;k++) printf(" ");
- for(int k = 1;k<=2*i-1;k++) printf("*");
- }
- }
- printf("\n");
- }
- return 0;
- }

参考题解:
- #include <stdio.h>
- int main(){
- //问题 r: 屠龙
- int a,b,c;
- while(~scanf("%d %d %d",&a,&b,&c)){
- if(3*a+2*b+c+a*b*c>25+4*a+2*b-3*c) printf("win\n");
- else printf("lose\n");
- }
- return 0;
- }
参考题解:
- #include <stdio.h>
- int main(){
- //问题 s: 信号测试
- int num;
- while(~scanf("%d",&num)){
- if(num<10){
- for(int i = 1;i<=num;i++) printf("%d",i);
- }else if(num<100){
- for(int i = 1;i<=num/10;i++) printf("S");
- for(int i = 1;i<=num%10;i++) printf("%d",i);
- }else{
- for(int i = 1;i<=num/100;i++) printf("B");
- for(int i = 1;i<=num/10%10;i++) printf("S");
- for(int i = 1;i<=num%10;i++) printf("%d",i);
- }
- printf("\n");
- }
- return 0;
- }

参考题解:
- #include <stdio.h>
- #include <string.h>
- char s[1005];
- int a[5];
- int main(){
- //问题 t: 统计个数
- gets(s);
- for(int i = 0;i<strlen(s);i++){
- if(s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s[i]<='Z') a[1]++;
- else if(s[i]>='0'&&s[i]<='9') a[2]++;
- else if(s[i]==' ') a[3]++;
- else a[4]++;
- }
- for(int i = 1;i<=4;i++){
- if(i==1) printf("%d",a[i]);
- else printf(" %d",a[i]);
- }
- return 0;
- }

参考题解:
- #include <stdio.h>
- #include <string.h>
- char s[1005];
- int main(){
- //问题 u: 字符加密
- gets(s);
- for(int i = 0;i<strlen(s);i++){
- if(s[i]>='a'&&s[i]<='z') printf("%c",'a'+(s[i]-'a'+1)%26);
- else printf("%c",s[i]);
- }
- return 0;
- }
参考题解:
- #include <stdio.h>
- int main(){
- //问题 v: 出租车计费
- int m;
- while(~scanf("%d",&m)){
- if(m<=2) printf("7\n");
- else if(m<=5) printf("%d\n",7+(m-2)*5);
- else if(m<=10) printf("%d\n",7+(5-2)*5+(m-5)*7);
- else printf("%d\n",7+(5-2)*5+(10-5)*7+(m-10)*9);
- }
- return 0;
- }
参考题解:
- #include <stdio.h>
- int main(){
- //问题 w: 五位以内的对称素数
- int n,temp;
- while(~scanf("%d",&n)){
- int ans = 0;
- temp = n;
- while(temp!=0){
- ans = ans*10+temp%10;
- temp/=10;
- }
- if(ans!=n){
- printf("No\n");
- continue;
- }
- if(n<=1){
- printf("No\n");
- continue;
- }
- int type = 1;
- for(int i = 2;i*i<=n;i++){
- if(n%i==0){
- printf("No\n");
- type = 0;
- break;
- }
- }
- if(type) printf("Yes\n");
- }
- return 0;
- }

参考题解1:
- #include <stdio.h>
- #include <string.h>
- int a[1005];
- int main(){
- //问题 x: 完数
- int n;scanf("%d",&n);
- for(int i = 2;i<=n;i++){
- memset(a,0,sizeof a);
- int idx = 1;
- a[0] = 1;
- for(int j = 2;j<i;j++){
- if(i%j==0){
- a[idx] = j;
- idx++;
- }
- }
- int ans = 0;
- for(int j = 0;j<idx;j++) ans+=a[j];
- if(ans==i){
- printf("%d its factors are ",i);
- for(int j = 0;j<idx;j++) printf("%d ",a[j]);
- printf("\n");
- }
- }
- return 0;
- }

参考题解2:
- #include <bits/stdc++.h>
- using namespace std;
- vector<int> v;
- bool isWenshu(int num){
- v.clear();
- v.push_back(1);
- for(int i = 2;i*i<=num;i++){
- if(i*i!=num&&num%i==0) v.push_back(i),v.push_back(num/i);
- else if(i*i==num&&num%i==0)v.push_back(i);
- }
- sort(v.begin(),v.end());
- int ans = 0;
- for(int i = 0;i<v.size();i++) ans+=v[i];
- return ans==num;
- }
- int main(){
- //问题 x: 完数
- ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
- int n;cin >> n;
- for(int i = 2;i<=n;i++){
- if(isWenshu(i)){
- cout << i << " its factors are ";
- for(int j = 0;j<v.size();j++) cout << v[j] << ' ';
- cout << '\n';
- }
- }
- return 0;
- }

参考题解:
- #include <stdio.h>
- int main(){
- //问题 y: 三角数字阵
- int n;scanf("%d",&n);
- for(int i = 1;i<=n;i++){
- for(int j = 1;j<=i;j++) printf("%d ",j);
- printf("\n");
- }
- return 0;
- }
参考题解:
- #include <stdio.h>
- int main(){
- //问题 z: 背靠背字符三角形
- char c;int n;scanf("%c %d",&c,&n);
- for(int i = 1;i<=n;i++){
- for(int j = 1;j<=n-i;j++) printf(" ");
- for(int j = 1;j<=i;j++) printf("%c",c);
- printf(" ");
- for(int j = 1;j<=i;j++) printf("%c",c);
- printf("\n");
- }
- return 0;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。