ZZULIOJ 1000-1009
- 1000 从今天开始入坑C语言
- 1001 整数a+b
- 1002 简单多项式求值
- 1003 两个整数的四则运算
- 1004 三位数的数位分离
- 1005 整数幂
- 1006 求等差数列的和
- 1007 鸡兔同笼
- 1008 美元和人民币
- 1009 求平均分
1000 从今天开始入坑C语言
题目描述
“C语言”在程序设计语言中是个闪亮的名字,每个学习计算机及相关专业的人在学习程序设计语言时都会首先关注它。C语言是 20 世纪 70 年代初在贝尔实验室开发出来的一种广为使用
的计算机程序设计语言,它从诞生开始主宰整个软件行业几十年,被称为编程语言的万王之王。所以国内外大部分高校都会选择C语言作为学习程序设计的入门语言,虽然它对初学者来说并不是最友好最易学的。
C语言难在哪里?不是难在语法,而是难在计算思维,思维的培养需要大量的编程实践。所以,C语言不是听会、看会的,而是动手动脑练会的。想想从小到大为了培养数学思维你所付出的时间和金钱吧,在信息时代,选择了IT相关专业的你,为培养计算思维付出多少努力都是最值得的,加油吧,少年!
请提交一个程序,输出一句宣言:“从今天开始入坑C语言”。(意味着从今天开始你要投入其中哦)
输入
无
输出
原样输出一行文字: 从今天开始入坑C语言
经典“hello world”类的问题,只不过是把输出文本换了一句,没什么技术含量,这类问题应该是九成的学代码的同学编的第一个程序
代码
#include<stdio.h>
int main()
{
printf("从今天开始入坑C语言\n");
return 0;
}
1001 整数a+b
题目描述
计算两个整数的和。
输入
输入两个整数,两个整数用空格隔开。
输出
输出为两个整数的和,单独占一行。
样例输入
1 1
样例输出
2
这一题同样是没什么难度的练习题,目的就是为了让大家熟练一下编程语言的输入输出。
代码
#include<stdio.h>
int main()
{
int a,b;
int sum;//其实这个变量可有可无
scanf("%d %d",&a,&b);
sum = a + b;
printf("%d",sum);//可以直接输出a + b不需要sum变量
return 0;
}
1002 简单多项式求值
题目描述
对用户输入的任一整数,输出以下多项式的值。
y=2x2+x+8
输入
输入整数x的值
输出
输出一个整数,即多项式的值。
样例输入
1
样例输出
11
代码
#include<stdio.h>
int main()
{
int x,y;
scanf("%d",&x);
y = 2*x*x+x+8;
printf("%d",y);
return 0;
}
1003 两个整数的四则运算
题目描述
输入两个整数num1和num2,请你设计一个程序,计算并输出它们的和、差、积、整数商及余数。
输入
输入只有两个正整数num1、num2。
输出
输出占一行,包括两个数的和、差、积、商及余数,数据之间用一个空格隔开。
样例输入
1 2
样例输出
3 -1 2 0 1
代码
#include<stdio.h>
int main()
{
int a,b;
scanf("%d %d",&a,&b);
printf("%d %d %d %d %d",a + b,a - b,a * b,a / b,a % b);
return 0;
}
1004 三位数的数位分离
题目描述
从键盘输入一个任意的三位正整数,分别求出其个位、十位和百位上的数字。
输入
输入任意的一个三位正整数。
输出
依次输出个位、十位、百位上的数字。以空格间隔,但最后一个数据的后面没有空格,直接换行。
样例输入
367
样例输出
7 6 3
代码
#include<stdio.h>
int main()
{
int n;
int a,b,c;
scanf("%d",&n);
a = n % 10;
b = n % 100 / 10;
c = n / 100;
printf("%d %d %d\n",a,b,c);//也可以直接输出n%10 n%100/10 n/100
return 0;
}
1005 整数幂
题目描述
输入3个整数,输出它们的1次幂、2次幂和3次幂。
输入
输入3整数,用空格隔开。
输出
输出3行,每行3个整数,分别是它们的1次幂、2次幂和3次幂,每个整数占9列,不足9列左对齐。
样例输入
1 5 100
样例输出
1 1 1
5 25 125
100 10000 1000000
这里有一个比较基础的小知识点记录一下
有关格式输入输出函数的格式控制部分也就是转换控制字符串,在printf函数中是被双引号括起来的部分,展开说明实在是太多,这在C语言课程中应该属于一小节的内容了,所以这里只记录本程序可能会遇到的问题。在这道程序中有一个输出整数占9列的要求,在printf函数中控制输出数据的基本格式是:%-m.nl格式字符,其中“-”用来控制输出的数据左对齐,右边填空格;m控制数据宽度;n控制数据精度,如果输出的是实数,表示输出n位小数,如果输出的是字符串,表示截取的字符个数,格式字符控制输出的数据结构。
需要注意的是,在输出的两个数据中间如果添加空格如“%.9d %.9d”此时输出的应该是:一个9列整数+空格+一个9列整数。如果你的编译习惯是会在输出时让两个数据之间添加一个空格是会造成输出结果格式错误的,我曾经和许多同专业的同学交流过有很多初学的同学都会在不注意的情况下犯这个错误,所以我觉得这应该算是一个需要注意的地方。
代码
#include<stdio.h>
int main()
{
int a,b,c;
scanf("%d %d %d",&a,&b,&c);
printf("%-9d%-9d%-9d\n",a,a * a,a * a * a);
printf("%-9d%-9d%-9d\n",b,b * b,b * b * b);
printf("%-9d%-9d%-9d\n",c,c * c,c * c * c);
return 0;
}
1006 求等差数列的和
题目描述
给出三个整数,分别表示等差数列的第一项、最后一项和公差,求该数列的和。
输入
输入三个整数,之间用空格隔开。第1个数作为首项,第2个数作为末项,第3个数作为公差。
输出
输出占一行,包含一个整数,为该等差数列的和。
样例输入
2 11 3
样例输出
26
代码
#include<stdio.h>
int main()
{
int a1,an,d;
int sum;
int n;
scanf("%d %d %d",&a1,&an,&d);
n = (an - a1)/d + 1;
sum = (a1 + an) * n / 2;//等差数列求和公式,不会的去面壁
printf("%d\n",sum);
return 0;
}
1007 鸡兔同笼
题目描述
鸡和兔关在一个笼子里,鸡有2只脚,兔有4只脚,没有例外。已知现在可以看到笼子里m个头和n只脚,求鸡和兔子各有多少只?
输入
输入两个整数heads和feet,分别代表笼子里头的个数和脚的个数。(假设heads和feet都在合法的数据范围内)
输出
依次输出鸡和兔的只数。(数字为0的也要输出)
样例输入
12 40
样例输出
4 8
鸡兔同笼这个问题,其实是蛮经典的一个初学者必写程序(大概)。
所有人应该都知道鸡兔同笼问题列两个方程就能解决了,小学二年级都会这题。
但是计算机可不会解方程,所以我们就需要绕一个圈来解决这个问题了。
其实我还挺纠结要不要放我当初的代码,因为当时刚学完循环结构所以想着用一个嵌套的for循环来解决这个问题,但是在代码大佬看来就能一下子看出来这肯定是一个新手写的代码,因为牺牲了程序的时间复杂度,明明很简单化简式子就能解决的问题偏要用嵌套循环来装,放在博客上来属实是丢人现眼了,但是想起来我写这篇博客的初衷就是为了记录自己成长的过程,只放没什么问题的程序属实是有点背离了我的初衷了,所以还是决定放上我自己的程序并将后续简化版的程序放在了后面。*
代码
#include<stdio.h>
int main()
{
int heads,feet;
int i,j;
scanf("%d %d",&heads,&feet);
for(i = 0;i <= heads;i++)
{
for(j = 0;j <= heads;j++)
{
if(heads == i + j && feet == 2 * i + 4 * j)
{
printf("%d %d\n",i,j);
}
}
}
return 0;
}
简化版代码
#include<stdio.h>
int main()
{
int heads,feet,x,y;
scanf("%d %d",&heads,&feet);
x=2*heads-0.5*feet; //鸡的个数x
y=0.5*feet-heads;//兔子的个数y
printf("%d %d\n",x,y);
return 0;
}
上下两个代码一对比属实是有点高下立判了,只能说当时的自己还很稚嫩啊(虽然现在也不是什么大佬)
1008 美元和人民币
题目描述
美元越来越贬值了,手上留有太多的美元似乎不是件好事。赶紧算算你的那些美元还值多少人民币吧。假设美元与人民币的汇率是1美元兑换6.5573元人民币,编写程序输入美元的金额,输出能兑换的人民币金额。
输入
输入一个实数,为美元的金额。
输出
输出能兑换的人民币的数值。输出保留2位小数。
样例输入
100
样例输出
655.73
代码
#include<stdio.h>
int main()
{
float r,m;
scanf("%f",&m);
r = m * 6.5573;
printf("%.2f\n",r);
return 0;
}
1009 求平均分
题目描述
已知某位学生的数学、英语和计算机课程的成绩,求该生三门课程的平均分。
输入
输入三个整数,数据之间由空格隔开。
输出
输出占一行,包含一个实数,为三门课的平均分,保留两位小数。
样例输入
87 73 93
样例输出
84.33
代码
#include<stdio.h>
int main()
{
float math,english,computer;
float avg;
scanf("%f %f %f",&math,&english,&computer);
avg = (math + english + computer) / 3;
printf("%.2f\n",avg);
return 0;
}