入门练习
- 第一段:变量、表达式、分支、循环
-
- 1. 重要的话说三遍
- 2. I Love GPLT
- 3. 输出带框文字
- 4. 输出菱形图案
- 5. 输出倒三角图案
- 6. 厘米换算英尺英寸
- 7. 计算摄氏温度
- 8. 是不是太胖了
- 9. 求整数均值
- 10. 算术入门之加减乘除
- 11. 计算平均分
- 12. 日期格式化
- 13. 后天
- 14. 然后是几点
- 15. BCD解密
- 16. 计算符号函数的值
- 17. 成绩转换
- 18. 出租车计价
- 19. 计算天数
- 20. 简单计算器
- 21. 超速判断
- 22. 用天平找小球
- 23. 分段计算居民水费
- 24. 猜数字游戏
- 25. 求奇数和
- 26. 最大公约数和最小公倍数
- 27.兔子繁衍问题
- 28. 求整数的位数及各位数字之和
- 29. 二分法求多项式单根
- 30. 念数字
- 31. 掉入陷阱的数字
- 32. 求交错序列前N项和
- 33. 统计素数并求和
- 34. 求分数序列前N项和
- 35. 猴子吃桃问题
- 36. 韩信点兵
- 37. 输出整数各位数字
- 38. 支票面额
- 39. 龟兔赛跑
- 40. 到底是不是太胖了
- 41. 计算阶乘和
- 42. 整除光棍
- 43. Shuffling Machine
- 44. 黑洞数
- 45. 找完数
- 46. 爬动的蠕虫
- 47. 二进制的前导的零
- 48. 求组合数
- 49. Have Fun with Numbers
- 50. 输出华氏-摄氏温度转换表
- 51. 求奇数分之一序列前N项和
- 52. 求简单交错序列前N项和
- 53. 生成3的乘方表
- 54. 求阶乘序列前N项和
- 55. 查询水果价格
- 56. 求给定精度的简单交错序列部分和
- 57. 求e的近似值
- 58. 求幂级数展开的部分和
- 59. 打印菱形图案
- 60. Welcome to You!
- 61. Programming in C is fun!
- 62. 计算物体自由下落的距离
- 63. 高空坠球
- 64. 统计大写辅音字母
- 65. 字符串替换
- 66. 时间换算
- 67. What is a computer?
- 68. 求N分之一序列前N项和
- 69. 换硬币
- 70. 输出三角形面积和周长
- 71. 求平方与倒数序列的部分和
- 72. 三天打鱼两天晒网
- 73. 比较大小
- 74. 三角形判断
- 75. 整数152的各位数字
- 76. 计算分段函数[3]
- 77. 求1到100的和
- 78. 计算油费
第一段:变量、表达式、分支、循环
1. 重要的话说三遍
#include <stdio.h>
int main(){
int i;
for(i=0;i<3;++i)
{
printf("I'm gonna WIN!\n");
}
return 0;
}
2. I Love GPLT
#include <stdio.h>
int main(){
printf("I\n \nL\no\nv\ne\n \nG\nP\nL\nT\n");
return 0;
}
3. 输出带框文字
#include <stdio.h>
int main(){
printf("************\n Welcome\n************");
return 0;
}
4. 输出菱形图案
#include <stdio.h>
int main(){
printf(" A\nA A\n A\n");
return 0;
}
5. 输出倒三角图案
#include <stdio.h>
int main(){
printf("* * * *\n * * *\n * *\n *\n");
return 0;
}
6. 厘米换算英尺英寸
#include <stdio.h>
int main(){
int cm,foot,inch;
scanf("%d",&cm);
inch=(int)(cm*1.0/30.48*12)%12;
foot=(int)(cm*1.0/30.48*12)/12;
printf("%d %d",foot,inch);
return 0;
}
7. 计算摄氏温度
#include <stdio.h>
int main(){
int F,C;
scanf("%d",&F);
printf("Celsius = %d",5*(F-32)/9);
return 0;
}
8. 是不是太胖了
#include <stdio.h>
int main(){
int H;
scanf("%d",&H);
double weight;
weight = (H-100)*0.9*2;
printf("%.1f",weight);
return 0;
}
9. 求整数均值
#include <stdio.h>
int main(){
int i,num=0,sum=0;
for(i=0;i<4;++i)
{
scanf("%d",&num);
sum+=num;
}
printf("Sum = %d; Average = %.1f",sum,sum*1.0/4.0);
return 0;
}
10. 算术入门之加减乘除
#include<stdio.h>
int main(){
int a,b;
double c;
scanf("%d %d",&a,&b);
c=1.0*a/b;
if(a%b==0) printf("%d + %d = %d\n%d - %d = %d\n%d * %d = %d\n%d / %d = %d\n",a,b,a+b,a,b,a-b,a,b,a*b,a,b,(int)c);
else printf("%d + %d = %d\n%d - %d = %d\n%d * %d = %d\n%d / %d = %.2f\n",a,b,a+b,a,b,a-b,a,b,a*b,a,b,c);
return 0;
}
11. 计算平均分
#include<stdio.h>
int main(){
int math=87,eng=72,comp=93;
double average=0;
average=(math+eng+comp)*1.0/3;
printf("math = 87, eng = 72, comp = 93, average = %.0lf\n",average);
return 0;
}
12. 日期格式化
#include<stdio.h>
int main(){
int y,m,d;
scanf("%d-%d-%d",&m,&d,&y);
printf("%d-%02d-%02d",y,m,d);
return 0;
}
13. 后天
#include<stdio.h>
int main(){
int day,result;
scanf("%d",&day);
if(day>=1&&day<=5)result=day+2;
else result=(day+2)%7;
printf("%d",result);
return 0;
}
14. 然后是几点
#include<stdio.h>
int main(){
int t1,perid,h1,m1,h2,m2,temp;
scanf("%d %d",&t1,&perid);
h1=t1/100;
m1=t1%100;
temp=h1*60+m1;
temp+=perid;
h2=temp/60;
m2=temp%60;
printf("%d%02d",h2,m2);//注意这里分钟保证为输出两字符用%02d表示
return 0;
}
15. BCD解密
#include<stdio.h>
int main(){
int x,a,b;
scanf("%d",&x);
a=x/16;
b=x%16;
if(b>=10&&b<16)
{
a+=1;
b-=10;
}
printf("%d",a*10+b);
return 0;
}
16. 计算符号函数的值
#include<stdio.h>
int main(){
int n,sign;
scanf("%d",&n);
if(n<0)
sign=-1;
else if(n==0)
sign=0;
else sign=1;
printf("sign(%d) = %d",n,sign);
return 0;
}
17. 成绩转换
#include<stdio.h>
int main(){
int scores;
char res;
scanf("%d",&scores);
if(scores>=90)res='A';
else if(scores>=80)res='B';
else if(scores>=70)res='C';
else if(scores>=60)res='D';
else res='E';
printf("%c",res);
return 0;
}
18. 出租车计价
#include <stdio.h>
int main()
{
double p, sum = 0;
int t;
scanf("%lf %d", &p, &t);
if (p <= 3)
sum += 10;
else if (p <= 10)
sum = 10 + (p - 3) * 2;
else
sum = 24 + (p - 10) * 3;
sum += (t / 5) * 2;
printf("%.0lf", sum);
return 0;
}
19. 计算天数
#include <stdio.h>
int main()
{
int a[12]={
31,28,31,30,31,30,31,31,30,31,30,31};
int y,m,d,sum=0,i;
scanf("%d/%d/%d",&y,&m,&d);
for(i=0;i<m-1;++i)
sum+=a[i];
sum+=d;
if((y%4==0&&y%100!=0||y%400==0)&&m>2)
sum+=1;
printf("%d",sum);
return 0;
}
20. 简单计算器
这是我的解法,相对复杂,推荐我解法后面的解法
#include <stdio.h>
int main()
{
char ch[100];
scanf("%s",ch);
int i=0,res=0,flag=-1,sum,num1,num2,fh;
//num1与num2为操作数,sum为每个整数(用于计算超过两位数的数据),flag=-1则需要计算num1,flag=0则考虑符合,flag=1则计算num2
while(ch[i]!='=')
{
if(flag&&ch[i]>='0'&&ch[i]<='9')
{
sum=0;
while(ch[i]>='0'&&ch[i]<='9')
{
sum*=10;
sum+=ch[i]-'0';
++i;
}
if(flag==-1)
num1=sum;
else if(flag==1)
{
num2=sum;
switch (fh)
{
case 1:
num1=num1+num2;
break;
case 2:
num1=num1-num2;
break;
case 3:
num1=num1*num2;
break;
case 4:
if(num2)
num1=num1/num2;
else
flag=-100;
break;
}
}
if(flag==-100)
break;
flag=0;
}
if(flag==0&&ch[i]!='=')
{
switch (ch[i])
{
case '+':
fh=1;
break;
case '-':
fh=2;
break;
case '*':
fh=3;
break;
case '/':
fh=4;
break;
default :
flag=-100;
}
if(flag==-100)
{
break;
}
++i;
flag=1;
}
}
if(flag!=-100)
printf("%d",num1);
else
{
printf("ERROR");
}
return 0;
}
简单计算器 https://zhuanlan.zhihu.com/p/116734673
#include <stdio.h>
int main()
{
int sum,a;
char c;
scanf("%d",&sum);
while(scanf("%c",&c))
{
switch(c)
{
case '+':scanf("%d",&a);sum+=a;break