17. 温度制的转换
//温度转换
# include <stdio.h>
int main()
{
int F;
float c;
printf("华氏温度\t摄氏温度\n");
c=-30.0;
while(c<=30.0)
{
F=9*c/5.0+32;
printf("%d\t\t%f\n",F,c);
c=c+5.0;
}
return 0;
}
//"\t"的运用
18. 水仙花数的判断
//判断一个数是否是水仙花数(135)
# include <stdio.h>
int main (void)
{
int x,a,b,c;
scanf ("%d",&x);
a = x%10;
b = x/10%10;
c = x/100;
a*a*a + b*b*b + c*c*c ==x?printf ("%d是水仙花数!",x):printf("%d不是水仙花数!",x);
//三目符
return 0;
}
19. 小白买笔问题
//假设使用n元钱买n支笔,其中钢笔3¥/支,圆珠笔2¥/支,铅笔0.5¥/支,
//问三种笔可各买多少支?要求每种笔至少买 1支。
//要求输出所有可能的购买方式。(当有多种方式购买时,要求按照钢笔支数的升序进行输出。)
#include<stdio.h>
int main()
{
int n;
float i, j;
scanf("%d",&n);
for (i = 1; i <= n - 2; i++) //要会正确地利用转换条件 :i >= 1( ×)(i < n/3 )也行
{
for(j = 1; j <= n - 2; j++)
if(3*i + j*2 + (n - j - i)/2 == n)//其实最好用0.5,因为用 “/ ”只反映整数部分,可能有误差。
printf("钢笔:%.f支,圆珠笔:%.f支,铅笔:%.f支\n",i,j,n-i-j);
else continue;
}
return 0;
}//也可以用3个for循环做
20.一元二次函数连续求解
//一元二次方程连续求解
# include<stdio.h>
# include<math.h>
int main() {
double a,b,c;
double x1,x2;
double delta; //Dev : shift + ctrl + a 自动对齐 Visual : shift + F8
do {
printf ("请依次输入二次方程的系数:\n");
printf ("a =");
scanf ("%lf",&a);
printf ("b =");
scanf ("%lf",&b);
printf ("c =");
scanf ("%lf",&c);
delta = b*b - 4*a*c;
if (delta > 0)
{
x1 = (-b + sqrt(delta))/(2*a);
x2 = (-b - sqrt(delta))/(2*a);
printf("有两个不相等的实数根:");
printf("%lf %lf",x1,x2);
} else if (delta == 0) {
x1 = x2 = (-b)/(2*a);
printf("有两个相等的实数根:");
printf("%lf %lf",x1,x2);
} else
printf("无实数根:");
}
while(1); //1 恒为正 一直循环
return 0;
}
//do... while (1) 可以用来循环某程序,实现了窗口使用多次性
21.求sn=a+aa+aaa+aaaa+…的值
//用for循环求sn=a+aa+aaa+aaaa+......的值
#include <stdio.h>
int main(void)
{
int a,b,i,sum = 0,val = 0;
scanf("%d %d",&a,&b); //b 表示 最后一个数的 a 的个数
for (i = 1; i <= b; i++)
{
val = val*10 + a; //不能直接写:a = a*10 + a 应为a未被赋值
sum += val;
}
printf ("%d",sum);
return 0;
}