C语言代码
一些关于C语言的小习题
Jerry Cheney
这个作者很懒,什么都没留下…
展开
-
ACM第二次
A - ASCII码排序 输入三个字符后,按各字符的ASCII码从小到大的顺序输出这三个字符。 Input 输入数据有多组,每组占一行,有三个字符组成,之间无空格。 Output 对于每组输入数据,输出一行,字符中间用一个空格分开。 Sample Input qwe asd zxc Sample Output e q w a d s c x z#include #原创 2020-04-25 16:15:05 · 181 阅读 · 0 评论 -
ACM第二次J
J - 求数列的和 数列的定义如下: 数列的第一项为n,以后各项为前一项的平方根,求数列的前m项的和。 Input 输入数据有多组,每组占一行,由两个整数n(nOutput 对于每组输入数据,输出该数列的和,每个测试实例占一行,要求精度保留2位小数。 Sample Input 81 4 2 2 Sample Output 94.73 3.41#include原创 2020-04-25 16:13:45 · 497 阅读 · 0 评论 -
无重复数字
【程序1】 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。/*【程序1】 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉原创 2020-04-25 16:12:30 · 331 阅读 · 0 评论 -
猜数游戏
计算机随机出一个数,然后用户猜,如果猜对了,则输出结果,如果猜错了,输出猜大或者小了。#include<stdio.h>#include<stdlib.h>int main(){ int magic;/*计算机想的数*/ int guess;/*用户猜出的数*/ magic=rand()%100+1; printf("please input the numbe原创 2017-11-20 21:38:47 · 676 阅读 · 0 评论 -
ACMbeginner(1)
1001 Sum Problem Problem Description In this problem, your task is to calculate SUM(n) = 1 + 2 + 3 + … + n.Input The input will consist of a series of integers n, one integer per line.Output For ea原创 2017-10-15 11:48:26 · 255 阅读 · 0 评论 -
欧几里德算法求最大公约数
欧几里德算法的思想: 欧几里德算法的思想基于辗转相除法的原理,辗转相除法是欧几里德算法的核心思想,欧几里德算法说白了就是辗转相除法的计算机算法的实现。 辗转相除法的内容: 如果用gcd(a,b)来表示a和b的最大公约数,那么根据辗转相除法的原理,有gcd(a,b)=gcd(b,a mod (b)),其中mod()表示模运算,并且不妨让a>b,这样方便于模运算。 伪代码如下gcd(a, b)原创 2017-10-10 23:51:01 · 5433 阅读 · 0 评论 -
动态规划(矩阵连乘)
定义:给定n个矩阵{A1,A2,…,An},其中,Ai与Ai+1是可乘的,i=1,2,….n-1。由于矩阵乘法满足结合律,故计算矩阵的连乘积可以有不同的计算次序。矩阵A和B可乘的条件是矩阵A的列数等于矩阵B的行数。若A是一个p×q矩阵,B是一个q×r矩阵,则其乘积C=AB是一个p×r矩阵。在上述计算C的标准算法中,主要计算量在3重循环,总共需要p×q×r次数乘。例如:两个矩阵相乘计算: 举例说原创 2017-10-09 23:15:48 · 6029 阅读 · 0 评论 -
ACM(首字母变大写)
A - 首字母变大写 输入一个英文句子,将每个单词的第一个字母改成大写字母。 Input 输入数据包含多个测试实例,每个测试实例是一个长度不超过100的英文句子,占一行。 Output 请输出按照要求改写后的英文句子。 Sample Input i like acm i want to get an accepted Sample Output I Like Acm I原创 2017-10-07 20:01:15 · 1283 阅读 · 0 评论 -
ACM第二次WXYZ
W - 海选女主角 potato老师虽然很喜欢教书,但是迫于生活压力,不得不想办法在业余时间挣点外快以养家糊口。 “做什么比较挣钱呢?筛沙子没力气,看大门又不够帅…”potato老师很是无奈。 “张艺谋比你还难看,现在多有钱呀,听说还要导演奥运开幕式呢!你为什么不去娱乐圈发展呢?”lwg在一旁出主意。 嗯,也是,为了生存,就委屈点到娱乐圈混混吧,马上就拍一部激光电影《杭电记忆——回来我原创 2017-10-06 20:51:52 · 357 阅读 · 0 评论 -
ACM第二次STUV
S - 母牛的故事 有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛? Input 输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0#include <iostream>using namespace std;int get_cow_num(int n){ if(n<=4)原创 2017-10-06 10:22:15 · 219 阅读 · 0 评论 -
ACM第二次JKLMNOPQR
J - 求数列的和 数列的定义如下: 数列的第一项为n,以后各项为前一项的平方根,求数列的前m项的和。 Input 输入数据有多组,每组占一行,由两个整数n(n<10000)和m(m<1000)组成,n和m的含义如前所述。 Output 对于每组输入数据,输出该数列的和,每个测试实例占一行,要求精度保留2位小数。 Sample Input 81 4 2 2 Sample O原创 2017-10-06 10:08:45 · 648 阅读 · 0 评论 -
ACM第二次ABCDEFGHI
A - ASCII码排序 输入三个字符后,按各字符的ASCII码从小到大的顺序输出这三个字符。 Input 输入数据有多组,每组占一行,有三个字符组成,之间无空格。 Output 对于每组输入数据,输出一行,字符中间用一个空格分开。 Sample Input qwe asd zxc Sample Output e q w a d s c x z#include <iost原创 2017-10-05 15:19:41 · 495 阅读 · 0 评论 -
计算该日是该年的第几天
计算该日是该年的第几天#include<stdio.h>#include<stdlib.h>int days(int y,int m){ switch(m) { case 2: if((y%4==0&&y%100!=0)||(y%100==0&&y%400==0)) return 29;原创 2017-09-29 22:39:51 · 358 阅读 · 0 评论 -
Your task is to Calculate a + b.
一、Your task is to Calculate a + b. Input:The input will consist of a series of pairs of integers a and b, separated by a space, one pair of integers per line. Output:For each pair of input integers原创 2017-09-29 08:42:20 · 16802 阅读 · 2 评论 -
贪心算法的找钱问题
问题:有两分五角,一角,五分和一分的硬币,如何找零使硬币的总数最少。#include<stdio.h>int main(){ int m; int a,b,c,d; a=25,b=10,c=5,d=1; printf("请输入找零的钱数!\n"); scanf("%d",&m); int a1=m/25;//两角五分硬币的个数 int b1原创 2017-09-26 23:49:23 · 1383 阅读 · 0 评论 -
贪心算法的找零问题
问题:有两分五角,一角,五分和一分的硬币,如何找零使硬币的总数最少。#include<stdio.h>int main(){ int m; int a,b,c,d; a=25,b=10,c=5,d=1; printf("请输入找零的钱数!\n"); scanf("%d",&m); int a1=m/25;//两角五分硬币的个数 int b1原创 2017-09-26 22:13:03 · 4030 阅读 · 1 评论 -
数塔问题
设有一个三角形数字塔,顶点结点为根结点,每个结点有一个整数数值,从顶点出发,可向左走也可向右走,找出从根结点到达叶结点的路径,使路径上的结点之和达到最大。#include <iostream> #define MAX 20 using namespace std;int main(){ int i,j;cout << "Please input N(lines)" << endl;原创 2017-09-21 21:06:56 · 563 阅读 · 0 评论 -
任意次方的后三位,打鱼晒网,计算某年的天数!
一、求一个整数的任意次方的后三位/*求一个整数的任意次方的后三位*/#include<stdio.h>int main(){ int x,y,z=1,i; printf("请输入两个整数\n"); scanf("%d%d",&x,&y); for(i=1;i<=y;i++) { z=z*x%1000;//计算任意数的后三位 }原创 2017-09-21 13:25:04 · 301 阅读 · 0 评论 -
排序算法
一、输入10个数,存入一维数组中,然后逆序输出!#include<stdio.h>int main(){ int a[10]; int i; printf("请输入\n:"); for(i=0;i<10;i++) { scanf("%d",&a[i]); } for(i=0;i<5;i++) { in原创 2017-09-17 21:48:17 · 302 阅读 · 0 评论 -
循环赛制(未完待续)
问题描述: 设有n(n = 2^k)位选手参加网球循环赛,循环赛共进行n-1天,每位选手要与其他n-1位选手比赛一场,且每位选手每天必须比赛一场,不能轮空。试按此要求为比赛安排日程: 1、每个选手必须与其他n-1个选手各赛一场; 2、每个选手一天只能赛一场; 3、循环赛一共进行n-1天#include<stdio.h> #include<string.h> #include<stdl原创 2017-09-11 21:41:17 · 372 阅读 · 0 评论 -
射击(递归)
一个射击运动员打靶,靶一共有10环,连开10枪打中90环的情况有多少种?需要考虑10枪的先后关系,比如9环10环同10环9环是不同的。int sum; int store[10]; void Output() //打印 { for(int i=9;i>=0;i--) { cout<<store[i]<<" "; }原创 2017-09-11 21:31:43 · 298 阅读 · 0 评论 -
递归程序(未完待续)
一、求n的m次方。 程序分析: 1、如果m的值为0,则输出为1。 2、如果不为0,则n*n^(m-1).#include<stdio.h>int j(int n,int m);void main(){ int n,m; printf("请输入m和n的值\n"); scanf("%d%d",&n,&m); printf("result=%d",j(n,m));}i原创 2017-09-11 21:28:02 · 205 阅读 · 0 评论 -
统计数字问题(未完待续)
一本书的页码从自然数1开始顺序编码直到自然数n。书的页码 按照通常的习惯编排,一个页码内都不包含多余的前导数字0.例如,第6页用数字6表示,而不是06或006等;数字计数问题要求给定书的总页码n,计算出书的全部页码中分别用到多少次数字0,1,……9. 这是一个效率比较低的算法。#include<stdio.h>#include<stdlib.h>int main(){ int arr原创 2017-09-04 22:28:34 · 812 阅读 · 0 评论 -
递归求阶乘
一、递归算法/*计算阶乘*/#include<stdio.h>int a(int n){ if(n==0||n==1) return 1; else return a(n-1)*n;}int main(){ int n; printf("请输入n\n"); scanf("%d",&n); printf("结原创 2017-09-04 21:56:46 · 350 阅读 · 0 评论 -
求X的N次方!递归和非递归
一、计算x的n次方。/*计算x的n次方*/#include<stdio.h>int a(int x,int n){ int t=1; for(int i=1;i<=n;i++) { t=t*x; } return t;}int main(){ int x,n; printf("请输入x和n\n"); scan原创 2017-09-04 21:51:17 · 24645 阅读 · 5 评论 -
学生学号判断专业班级
学生的学号为12位,其组成为:年份(2位)+专业信息(6位)+班级(2位)+班内序号(2位)。例如学号“111909030208”,“11”代表2011年入学,“190903”代表网络工程专业,“02”代表在网络工程专业的02班,“08”为班内序号。已知信息工程系三个专业的代码为“190901”(计算机科学与技术专业)、“190902”(软件工程专业)、“190903”(网络工程专业),输入一个学号原创 2017-11-11 18:13:39 · 6997 阅读 · 0 评论 -
网友年龄
题目.网友年龄 某君新认识一网友。 当问及年龄时,他的网友说: “我的年龄是个2位数,我比儿子大27岁, 如果把我的年龄的两位数字交换位置,刚好就是我儿子的年龄” 请你计算:网友的年龄一共有多少种可能情况? 提示:30岁就是其中一种可能哦. 请填写表示可能情况的种数。#include<stdio.h>void main(){ int father,son; int原创 2017-10-07 20:06:32 · 350 阅读 · 0 评论 -
校内五
输入一个字符,判断该字符的ASCII码每个数字之和能否被7整除的数。例如‘a’的ASCII码为97,9+7=16,16不能被7整除。#include<iostream.h>void main(){ char ch; int sum=0; cin>>ch; if (ch>='A'&&ch<='Z') sum=ch/10+ch%10;else原创 2017-09-25 15:47:33 · 225 阅读 · 0 评论 -
校内选拔(六)
打印图形#include "iostream"using namespace std;int main(){ int a[7]={5,4,3,4,3,4,5}; int b[7]={1,3,5,3,5,3,1} ; for(int i=0;i<7;i++)//行数 {//输出每行的元素 for (int j=0; j<a原创 2017-09-18 22:09:04 · 540 阅读 · 0 评论 -
Fibonacci余数
Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。 当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。 样例输入 10 样例输出 55#include <stdio.h>#define MOD 10007#define MAXN 1000001int n, i, F[MAXN];int main(){ scanf(原创 2017-09-09 21:19:26 · 392 阅读 · 0 评论 -
判断素数
程序说明: 1、首先需要循环语句,执行到根号n。 2、可以设置一个值fact来判断是否为素数。#include <stdio.h>#include<math.h>int main(){ int n; int k; int fact=0; printf("请输入一个整数\n"); scanf("%d",&n); for(k=2;k<=sqrt(原创 2017-09-09 20:37:57 · 473 阅读 · 0 评论 -
质因数分解
将一个正整数分解质因数。 程序说明: 先找到最小的质数k,然后按照以下步骤 1、如果这个质数恰好等于n,说明分解结束。输出。 2、如果n!=k的话,但是n%k==0,输出k,然后用n去除k的商作为新的n,重复此步骤。 3、如果不能整除的话,k的值加1作为新的k值,继续执行。#include <stdio.h>int main(){ int n; int k; p原创 2017-09-09 20:27:10 · 441 阅读 · 0 评论 -
整数去重问题
输入为两行,第一行是个正整数N,第二行输入N个整数,然后从小到大排序。#include <stdio.h>int main(){ int n; int a[10],i,t,j; printf("请输入n!\n"); scanf("%d",&n); printf("请输入%d个数!\n",n); for(i=0;i<n;i++) { scanf("%d",&原创 2017-09-08 13:24:49 · 2717 阅读 · 0 评论 -
统计数字,空格等个数
统计字母、数字、空格以及其他字符的个数。#include<stdio.h>void main(){ int char_num=0,int_num=0,space_num=0,other_num=0; char ch; while((ch=getchar())!='\n') { if(ch<='z'&&ch>='a'||ch<='Z'&&ch>='A'原创 2017-09-07 13:45:22 · 1676 阅读 · 0 评论 -
字母转换
小写字母转换成大写字母(也可以写成输入一个字符串将其中的小写字母转换成大写字母其他的不变)#include<stdio.h> void main() { char a[80],*p; p=a; scanf("%s",a); while (*p!='\0'){ if (*p<='Z' && *p>='A') *p+=32; p++; } printf("%s",a); } 输入原创 2017-09-06 12:51:09 · 602 阅读 · 0 评论 -
判断年月
/*输入年月日判断该年的该月有多少天*/#include<stdio.h>main(){ int year,month,day; printf("请输入年月\n"); scanf("%d%d",&year,&month); switch(month) { case 1:case 3:case 5:case 7:case 8:case 10:cas原创 2017-09-04 13:26:20 · 379 阅读 · 0 评论 -
计数排序
基本思想:对每一个记录计算文件中有多少个其他记录的关键字值大于该记录的关键字值,从而找到这个记录的正确排序位置。对于计数排序,假设每一个输入都是介于0~k之间的整数。对于每一个输入元素x,确定出小于x的元素的个数。假如有17个元素小于x,则x就属于第18个输出位置。 计数排序涉及到三个数组A[0…..length-1],length为数组A的长度;数组B与数组A长度相等,存放最终排序的结果;C[0原创 2017-09-01 21:56:01 · 172 阅读 · 0 评论 -
直接插入排序
直接插入排序(straight insertion sort)的做法是: 1、每次从无序表中取出第一个元素,把它插入到有序表的合适位置,使有序表仍然有序。 第一趟比较前两个数,然后把第二个数按大小插入到有序表中; 第二趟把第三个数据与前两个数从后向前扫描,把第三个数按大小插入到有序表中;依次进行下去,进行了(n-1)趟扫描以后就完成了整个排序过程。 直接插入排序是由两层嵌套循环组成的。外层循环原创 2017-08-31 21:17:29 · 340 阅读 · 0 评论 -
C3
打渔晒网 如果渔夫从2011年1月1号开始每三天打一次鱼,每两天晒一次网。当输入2000年1月1号以后的其中一天,判断该天是打渔还是晒网。 程序说明: 1、判断输入的年份是否为闰年。 2、计算输入的日期距离2000年1月1号有多少天。#include <stdio.h>int runnian(int a)//判断闰年{ if((a%4==0||a%100!=0)&&(a%400=原创 2017-08-31 19:46:21 · 528 阅读 · 0 评论 -
C2
每个苹果0.8元,第一天买了两个,第二天买的数量为前一天的两倍,直到购买的数量不超过100.求平均每天花多少钱。#include <stdio.h>void main(){ int day=0; int num=2; double money=0; double avg; while(num<100) { money=money+0原创 2017-08-30 17:43:21 · 382 阅读 · 0 评论