
c语言习题
终把泪酿酒~
艰苦小白的编程之路
展开
-
出生19988,直到25遇见4个数字不同年份
#includeint count(int n);int main(){ int a[4],year,n,i,sum; scanf("%d%d",&year,&n); sum=year; for(i=year;i<=9999;i++){ if(count(i)==n){ printf("%d %04d",原创 2017-05-12 01:16:00 · 908 阅读 · 0 评论 -
成绩排名,遇见括号问题如何解决
具有即时获得成绩排名的特点。它的功能是怎么实现的呢? 我们做好了题目的解答,提交之后,要么“AC”,要么错误,不管怎样错法,总是给你记上一笔,表明你曾经有过一次错误提交,因而当你一旦提交该题“AC”后,就要与你算一算帐了,总共该题错误提交了几回。虽然你在题数上,大步地跃上了一个台阶,但是在耗时上要摊上你共花去的时间。特别是,曾经有过的错误提交,每次都要摊上一定的单位时间分。这样一来,你在做出的原创 2017-06-06 20:13:32 · 380 阅读 · 0 评论 -
算出一组字符串里出现最对的一组
Contest time again! How excited it is to see balloons floating around. But to tell you a secret, the judges' favorite time is guessing the most popular problem. When the contest is over, they will cou原创 2017-06-06 20:30:08 · 229 阅读 · 0 评论 -
一道看似很简单的判断A==B问题
Give you two numbers A and B, if A is equal to B, you should print "YES", or print "NO".Inputeach test case contains two numbers A and B. Outputfor each case, if A is equal to B, you should pr原创 2017-06-06 20:37:12 · 1083 阅读 · 0 评论 -
棋盘问题
给出一个4*4的棋盘,每个单元只可能是“.”,“o”或者“x”中的一种,其中“.”代表当前单元没有棋子,“o”代表当前单元有乙的棋子,“x”代表当前单元有甲的棋子。现在需要你判断,如果下一步轮到甲下棋,那么他能否下一步棋而获得胜利?(胜利的规则是棋盘上有自己方的三个子在一条线上,此条线可以是水平竖直或者斜45度的)。Input输入有4行,每行4个字符,代表当前单元的情况。O原创 2017-05-22 20:30:43 · 395 阅读 · 0 评论 -
大整数加减法
题目描述特大整数用长整型也存不下,如果用双精度实型存储则会造成误差,可以用字符数组存储所有位,再按十进制由低到高逐位相加,同时考虑进位。特别提示:假设特大整数不超过30位。参与操作的数据中,被减数>减数。算法分析:1.初始化:将两个特大整数输入两个字符数组,将两个字符数组的各元素右移,使最低位的元素位置对齐,高位补0,为了存储最高位的进位,位数多的数最高位前原创 2017-06-18 19:45:57 · 931 阅读 · 0 评论 -
2017linux面试题整理
13.#include#includeint main(){ char str[512]; int i; for(i=0;i str[i]=-1-i; printf("%d\n",strlen(str)); return 0;}解释:因为在str的时候-1和是整数,默认按32位走,左边高地址,右边低地址原创 2017-05-27 11:07:18 · 1060 阅读 · 0 评论 -
找出字符串中最长数字
//在字符串中实现找到最长数字字符串#include#include#includeint findnumstring(char *outputstr,char *inputstr){ char *in=inputstr,*out=outputstr,*temp,*final; int count=0,maxlen=0; while(*in!='\0')转载 2017-06-03 21:39:10 · 311 阅读 · 0 评论 -
大整数除法
1017. A除以B (20)时间限制100 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者CHEN, Yue本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数。你需要输出商数Q和余数R,使得A =原创 2017-07-09 14:33:48 · 990 阅读 · 2 评论 -
素数筛选
1、取余数方法#include#define N 100int main(){ int prime[N]; int i,j; for(i=1;i<=N;i++) prime[i]=1; prime[0]=prime[1]=0; for(i=2;i*i<=N;i++)//提供基数 { if(prim原创 2017-05-03 21:12:06 · 228 阅读 · 0 评论 -
如何判断一个链表是否有环,如何确定入口
今天康康学长讲到了链表环的问题,觉得蛮好玩的,我觉得值得记一下一、判断是否有环//判断是否有环的关键,就是使用快慢指针,看两者是否会重合 link *fast,*slow;//快慢指针 link *meet;//相遇指针 fast=head,low=head; int flag=0; while(fast&&fast->next) {原创 2017-07-19 22:55:16 · 735 阅读 · 1 评论 -
c语言(99乘法表)
#include int main(){ int i, j; for (i = 1; i { for (j = 1; j { printf("%d*%d=%2d", j, i, i * j);//j在i前面,保证1*2,1*3的1不变 if (i != j)原创 2017-04-23 17:16:16 · 1895 阅读 · 0 评论 -
c语言(两天打鱼,三天晒网)
#includetypedef struct date { int year; int month; int day;}DATE;int countday(DATE from, DATE to);int isLeap(int year);int main(){ DATE end, start; int原创 2017-04-23 17:12:46 · 1798 阅读 · 0 评论 -
c语言(河内塔)
#includelong count;void hanoi(int n,char a,char b,char c){ if(1==n) printf("第%d次,%c柱-->%c柱\n",++count,a,c); else { hanoi(n-1,a,c,b); printf(原创 2017-04-23 17:11:40 · 698 阅读 · 0 评论 -
互逆素数
/*编写一个判断素数的函数,如果该数字是素数,则函数返回1;否则函数返回0。要求调用该判断素数函数,求出x到y之间(x,y均为正整数,包含x,y,且x所有的可逆素数。所谓可逆素数是指:若将某一素数的各位数字顺序颠倒后得到的数仍然是素数,则此素数称为可逆素数。例如:149是可逆素数(因为149是素数,941也是素数)。*/#include #include #include #define原创 2017-05-03 23:26:20 · 2042 阅读 · 0 评论 -
C语言(身份证问题)2017.4.23
/*你有身份证吗?但无论如何您一定有身份证号码。从身份证号码上可以得到每个人的具体个人信息。身份证号码有18位,其中前17位包含特殊的特殊含义: 前6位代表你来自的区域,然后8位代表你的生日。其他4位代表什么?你可以百度一下。 以下是本题中可能用到的地区的代码。在身份证号码中,可能只有33出现,0000是由其他数字取代。 这是塞缪尔的身份证号码331004198910120036你能告原创 2017-04-23 15:41:39 · 3201 阅读 · 0 评论 -
C语言(无序一组数插入有序一组数)2017.4.23
/*题目描述在有序的整型数列中插入若干个数(数列中可以有零个元素),再插入过程中仍然有序。 特别说明:待数列最初数据个数不超过20个,后续插入的数据个数不超过10个。 输入第一行是原始数列的元素个数n,第二行是原始数列的n个整型元素值,以空格间隔。第三行是待插入元素的个数m,第四行是m个待插入元素值,以空格间隔。输出每次插入结束后打印当前数组,数字用空格隔开原创 2017-04-23 16:20:58 · 1029 阅读 · 0 评论 -
c语言(移动排序)2017.4.23
/*1.把一个数组最开始的若干个元素搬到数组末尾。如 输入数组[1,2,3,4,5] 输入移动数字个数为 2 输出 [3,4,5,1,2]*/#include #define SIZE 1000int * sort(int *a,int n,int m);int main(){ int i, j, count = 1; int a原创 2017-04-23 16:31:44 · 350 阅读 · 0 评论 -
c语言(约瑟夫环)2017.4.23
/*有n个人围成一圈,顺序排号(从1开始)。从第一个人开始报数(从1到3报数),凡报到m的人退出圈子,问最后留下的是原来第几号的那位。如 输入 10 ,最后留下4号*/#include#define N 100int main(){ int pos=-1; int i=0,j=0,n,m,count=1; int a[N]={0};原创 2017-04-23 16:39:22 · 709 阅读 · 0 评论 -
c语言(用结构排成绩)
//输入人名和成绩,输出人名按成绩从大到小#includestruct student{ char name[21]; char score;};int main(){ struct student a[100],t; int i,j,n; puts("要输入几个人"); scanf("%d",&n);原创 2017-04-23 16:49:14 · 463 阅读 · 0 评论 -
c语言(螺旋矩阵)2017.4.23
/*对于任意的M×M方阵,编程按照下面的规律对其初始化并输出。 特别说明:方阵行列数不超过20。输入方阵的行列数输出输出螺旋矩阵,每个数字占三个字符的宽度,右对齐,同行相邻两个数字间用一个空格隔开,每行最后一个数字后面没有空格。样例输入7样例输出 1 2 3 4 5 6 7 24 25 26 27 28 29 8原创 2017-04-23 16:55:57 · 1841 阅读 · 0 评论 -
c语言(在矩阵中算出列最大,和第几行的数交换)
/*题目描述找出整型方阵A每列绝对值最大的元素,并与同行对角线元素进行交换。 特别说明:方阵行列数n不超过20。 输入第一行是方阵A的行列数n,接着的n行是方阵A的元素。输出输出交换完成后的矩阵,每个数字占三个字符的宽度,右对齐,同行相邻两个数字间用一个空格隔开,每行最后一个数字后面没有空格.样例输入51 8 2 -10 510 2 7 15 3315原创 2017-04-23 16:58:38 · 2008 阅读 · 0 评论 -
c语言(完数)
#includeint main(){ int i,j,n,sum=0; scanf("%d",&n); for(i=2;i { sum=0; for(j=1;j { if(i%j==0) sum+=j; }原创 2017-04-23 17:01:43 · 1521 阅读 · 0 评论 -
c语言(杨辉三角形)2017.4.23
#include int yanghui(int x, int y){ int z; if (y == 1 || y == x) return 1; else { z = c(x - 1, y - 1) + c(x - 1, y);//上一行两个数字的和 return z; }}原创 2017-04-23 16:46:04 · 364 阅读 · 0 评论 -
c语言(进制转换)
#include #include int int_pow(int x,int y)//用于计算倍数 { int i,result=1; for(i=1;i { result*=x; } return result; } void原创 2017-04-23 17:08:26 · 742 阅读 · 0 评论 -
棋盘问题
在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。 Input 输入含有多组测试数据。 每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵内描述棋盘,以及摆放棋子的数目。 n <= 8 , k <=原创 2017-07-26 23:10:23 · 334 阅读 · 0 评论