练习2-1 Programming in C is fun!
#include<stdio.h>
int main()
{
printf("Programming in C is fun!");
return 0;
}
练习2-3 输出倒三角图案
#include<stdio.h>
int main()
{
printf("* * * *\n * * *\n * *\n *");
return 0;
}
练习2-4 温度转换
#include<stdio.h>
int main()
{
int celsius, fahr;
fahr = 150;
celsius = 5 * (fahr - 32) / 9;
printf("fahr = %d, celsius = %d", fahr, celsius);
return 0;
}
练习2-6 计算物体自由下落的距离
#include<stdio.h>
int main()
{
float height;/*这里一开始没看到题目要求保留两位小数*/
height = 0.5 * 10 * 9;
printf("height = %.2f", height);
return 0;
}
练习2-8 计算摄氏温度
#include<stdio.h>
int main()
{
int Celsius, fahr;/*这个地方一开始没注意到C是大写,直接用了第四题的,还是复制样例比较好*/
scanf("%d", &fahr);
Celsius = 5 * (fahr - 32) / 9;
printf("Celsius = %d", Celsius);
return 0;
}
练习2-9 整数四则运算
#include<stdio.h>
int main()
{
int A, B;
scanf("%d %d", &A, &B);
printf("%d + %d = %d\n", A, B, A+B);
printf("%d - %d = %d\n", A, B, A-B);
printf("%d * %d = %d\n", A, B, A*B);
printf("%d / %d = %d", A, B, A/B);
return 0;
}
练习2-10 计算分段函数[1]
#include<stdio.h>
int main()
{
float x, y;
scanf("%f", &x);
if(x!=0)
y=1.0/x;
else
y=0;
printf("f(%.1f) = %.1f", x, y);
return 0;
}
练习2-11 计算分段函数[2]
#include<stdio.h>
#include<math.h>
int main()
{
float x, y;
scanf("%f", &x);
if(x>=0)
y=pow(x, 0.5);
else
y=pow(x+1, 2)+2*x+1/x;
printf("f(%.2f) = %.2f", x, y);
return 0;
}
练习2-12 输出华氏-摄氏温度转换表
#include<stdio.h>
#include<math.h>
/*这题这个输出格式,%6d就是靠右对齐,前面会有五个空格,字符出现在第六位,6前面加个0就是补0,负6就是左对齐*/
int main()
{
int lower, upper, a;
double C;
scanf("%d %d", &lower, &upper);
a = lower;
if(lower>upper)
printf("Invalid.");
else
{
printf("fahr celsius\n");
while(a<=upper)
{
C = 5*(a-32)/9.0;
printf("%d%6.1f", a, C);
a+=2;
if(a<=upper)
printf("\n");
}}
return 0;
}
练习2-13 求N分之一序列前N项和
#include<stdio.h>
int main()
{
int i,N;
scanf("%d", &N);
double sum=0;
for(i=1; i<=N; i++)
sum+=1.0/i;
printf("sum = %.6f", sum);
return 0;
}
练习2-14 求奇数分之一序列前N项和
#include<stdio.h>
int main()
{
int i=1, j=1, N;
scanf("%d", &N);
double sum=0;
do
{
sum+=1.0/i;
i+=2;
j++;
}while(j<=N);
printf("sum = %.6f", sum);
return 0;
}
练习2-15 求简单交错序列前N项和
#include<stdio.h>
int main()
{
int i=1, j=1, N;
scanf("%d", &N);
double sum=0;
do
{
if(j%2==1)
sum+=1.0/i;
else
sum-=1.0/i;
i+=3;
j++;
}while(j<=N);
printf("sum = %.3f", sum);
return 0;
}
练习2-17 生成3的乘方表
#include<stdio.h>
#include<math.h>
int main()
{
int n, power;
scanf("%d", &n);
int i;
for(i=0; i<=n; i++)
{
power=pow(3,i);
printf("pow(3,%d) = %d", i, power);
if(i!=n)
printf("\n");
}
return 0;
}
练习2-18 求组合数
#include<stdio.h>
#include<math.h>
double fact(int n);
int main()
{
int m, n, C, a, b, c;
scanf("%d %d", &m, &n);
C=fact(n)/fact(m)/fact(n-m);
printf("result = %d", C);
return 0;
}
double fact(int n)
{
int i;
double product;
product = 1;
for(i=1; i<=n; i++)
product*=i;
return product;
}