学C之前我发现一本书值得推荐,从中我知道了许多课堂以外的内容
《Linux C编程一站式学习》:宋劲杉-北京亚嵌教育研究中心
在线阅读:http://akaedu.github.io/book/index.html

编程题 - 时间转化

输入总秒数,转换为相应的时、分、秒。提示:在输出时,请使用下面的格式: printf(“%d:%02d:%02d\n”, h, m, s);
输入:整数
输出:时分秒,整数,西文冒号分隔。
样例:
3610
1:00:10

1
2
3
4
5
6
7
8
9
10
#include<stdio.h>
int main()
{
int h,m,s,totals;
scanf("%d",&totals);
h=totals/3600;
m=(totals-h*3600)/60;
s=totals-h*3600-m*60;
printf("%d:%02d:%02d\n", h, m, s);
}

编程题 - 三角形

编写程序检验由三边能否构成三角形,检验方法是任意两边和均要大于第三边。
输入:
3边长
输出:
若果可以构成,输出YES,否则输出ERROR DATA
输入:
1.0 1.0 2.0
输出:
ERROR DATA

1
2
3
4
5
6
7
8
9
10
11
12
13
#include<stdio.h>
int main()
{
float a,b,c,d,e,f;
scanf("%f %f %f",&a,&b,&c); //3 number
d=a+b;
e=b+c;
f=a+c;
if (d>c && e>a && f>b)
printf("YES");
else
printf("ERROR DATA");
}

编程题 - 序列求和

求a+aa+aaa+aaaa+… …+aa…a(n个),其中a为1~9之间的整数。
例如:当a = 1, n = 3时,求1+11+111之和;
当a = 5, n =7时,求5+55+555+5555+55555+555555+5555555之和。
输入:a和n,空格分隔
输出:和
样例:
2 3
246

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<stdio.h>
#include<math.h>
int main()
{
int a,n,i,aa,aaa,d;
scanf("%d %d",&a,&n); //2 number 2 3
i=1;
d=a;
aa=a;
while (i<n){
aaa=aa*10+a; //aaa=22
aa=aaa; //aa=22
d=d+aaa;
i=i+1;
}
printf("%d",d);
}

编程题 - 单词分解及求ASCII码值

输入由4个字母构成的英文单词,按如下格式输出字母,该字母的ASCII码以及该字母的后继字符。每行输出数据之间用一个空格分隔。如:
输入:
word
输出如下:
w 119 x
o 111 p
r 114 s
d 100 e

1
2
3
4
5
6
7
8
9
10
11
12
13
#include<stdio.h>
#include<math.h>
int main()
{
char a,b,c,d;
int a1,b1,c1,d1;
scanf("%c%c%c%c",&a,&b,&c,&d); //word
a1=(int)a+1;
b1=(int)b+1;
c1=(int)c+1;
d1=(int)d+1;
printf("%c %d %c\n%c %d %c\n%c %d %c\n%c %d %c",a,a,a1,b,b,b1,c,c,c1,d,d,d1);
}

编程题 - 日期问题

输入公元年份和月份,输出该月份的天数。
如输入:
2018,3
则输出:
31

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<stdio.h>
void days(int m,int y)
{
if(m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) printf("31");
if(m == 4 || m == 6 || m == 9 || m == 11) printf("30");
if(m == 2 && y%4 == 0)
if(y%100 == 0 && y%400!=0)
printf("28");
else printf("29");
//else printf("28");
}
void main()
{
int y,m,d;
scanf("%d,%d",&y,&m); //year,month
days(m,y);
}

编程题 - 圆的面积和周长

输入一个圆的半径,然后计算该圆的面积和周长,圆周率取值3.1416。
输入:
10
输出格式:
周长=62.832001
面积=314.160004

1
2
3
4
5
6
7
8
9
10
#include<stdio.h>
#include<math.h>
int main()
{
float r,c,s;
scanf("%f",&r); //banjing
c=2*3.1416*r;
s=3.1416*pow(r,2);
printf("周长=%f\n面积=%f",c,s);
}

编程题 - 由小到大输出

输入二个整数,按照由小到大的顺序输出。
输入:
76 57
输出:
57,76

1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
int main()
{
int a,b,c;
scanf("%d %d",&a,&b);
if (a>=b)
{
c=a;
a=b;
b=c;}
printf("%d,%d",a,b);
}