输入a,b,c,编程求方程 ax2 + bx + c = 0 的根。
1#include<stdio.h>
2#include<math.h>
3int main()
4{
5 int d; //
6 double a, b, c;
7 scanf("%lf %lf %lf", &a, &b, &c);
8 double data = b * b - 4 * a * c;
9 if(data >= 0)
10 {
11 if(data == 0)
12 {
13 printf("该方程的根为: %lf",((-b + sqrt(data)) / -2 * a));
14 }
15 else
16 {
17 printf("该方程有两个跟: %lf %lf",((-b + sqrt(data)) / -2 * a),((-b - sqrt(data))/ -2 * a));
18 }
19 }
20 else
21 {
22 printf("该方程无解!");
23 }
24 return 0;
25}
已知正方体的棱长为 3.2,求正方体的体积和表面积 (保留 2 位小数)。
1#include<stdio.h>
2#include<math.h>
3int main()
4{
5 double a = 3.2;
6 printf("该正方体的体积为:%.2lf\n", pow(a, 3));
7 printf("该正方体的表面积为:%.2lf\n", 6 * pow(a, 2));
8 return 0;
9}
输入3个整数a、b、c,编程交换他们的值,即把 a 的值给 b ,b 的值给 c , c 的值给 a 。
1#include <stdio.h>
2int main( )
3{
4 int a, b, c, t;
5 scanf("%d %d %d", &a, &b, &c);
6 t=c;
7 c=b;
8 b=a;
9 a=t;
10 printf("a=%d b=%d c=%d", a, b, c);
11 return 0;
12}
编程将任意输入的小写字母转化成大写字母并输入(要求使用 getchar 和 putchar 函数完成)。
1#include<stdio.h>
2#include<math.h>
3int main()
4{
5 int a;
6 a = getchar();
7 putchar(a - ('a' - 'A'));
8 return 0;
9}
输入三角形的三条边,编程求该三角形的面积。
1#include <stdio.h>
2#include <math.h>
3int main( )
4{
5 // 缺少判断三角形是否合理
6 float a,b,c,p,s;
7 scanf("%f %f %f", &a, &b, &c);
8 p = (a + b + c) / 2;
9 s=sqrt((p - c) * (p - a) * (p - b) * p);
10 printf("该三角形的面积是:%.2f", s);
11 return 0;
12}
设计一个简单的计算器程序,用户输入运算数和四则运算符,输出计算的结果(请注意处理当输入除数为 0 的错误提示)。示范如下: 输入:5.86 输出:5.86=34.8 输入:9/0 输出:error!除数不能为0!
1#include<stdio.h>
2#include<math.h>
3int main()
4{
5 double a, b;
6 char c;
7 scanf("%lf%c%lf", &a, &c, &b);
8 switch(c)
9 {
10 case '+':
11 printf("%lg%c%lg=%lg\n", a, c, b, a + b);
12 break;
13 case '-':
14 printf("%lg%c%lg=%lg\n", a, c, b, a - b);
15 break;
16 case '*':
17 printf("%lg%c%lg=%lg\n", a, c, b, a * b);
18 break;
19 case '/':
20 if(b == 0)
21 {
22 printf("error!");
23 }
24 else
25 {
26 printf("%lg%c%lg=%lg\n", a, c, b, a / b);
27 }
28 break;
29 }
30 return 0;
31}
根据输入的 x 的值求 y 的值,当 x 大于 0 时,y =(x + 1)/(x - 2);当 x 等于 0 或 2 时,y = 0;当 x 小于 0 时,y =(x - 1)/(x - 2)。(注意测试 x 为 2 时程序能否正确执行)
1#include <stdio.h>
2int main()
3{
4 float x;
5 scanf("%f",&x);
6 if (x == 0 || x == 2)printf("y=%d\n",0);
7 else
8 {
9 if(x > 0)printf("y=%.2f\n", (x + 1) / (x - 2));
10 if(x < 0)printf("y=%.2f\n",(x - 1) / (x - 2));
11 }
12 return 0;
13}
编写程序,输入一个不多于 4 位的正整数,完成下列要求: ○1 判断它是几位数,如输入 152,输出 3 ○2 输出每一位的数码,如输入 152,输出 1, 5, 2 ○3 逆序输出这个数,如输入 152,输出 251 输入示例: 152 输出: 152 是 3 位数, 数码是1、5、2,逆序数字是 251
1#include <stdio.h>
2#include <math.h>
3int main()
4{
5 int a, b, c, i = 0;
6 scanf("%d",&a);
7 b = a;
8 for(i = 1; a >= 10; i++)
9 {
10 a /= 10;
11 c = i + 1;
12 }
13 printf("%d是%d位数,",b,i);
14 int sum=0;
15 for (; c >= 0; c--)
16 {
17 sum += (b % 10) * pow(10 ,c - 1);
18 b /= 10;
19
20 }
21 c = sum;
22 printf("数码是") ;
23 while(i > 0)
24 {
25 if (sum > 10) printf("%d、", sum % 10);
26 else printf("%d,", sum % 10);
27 sum /= 10;
28 i--;
29 }
30 printf("逆序数是%d",c);
31 return 0;
32}
选做题)用 switch 结构编程完成:输入月份数字,输出对应的季节,12 - 2 月是冬季,3 - 5 月是春季,6 - 8 月是夏季,9 - 11 月是秋季。(最好不写 12 个 case 语句,这题是可以用 4 个 case 解决的)
1#include <stdio.h> // 数据合理的情况下
2int main()
3{
4 int a,b;
5 scanf("%d",&a);
6 b = a / 3;
7 switch(b)
8 {
9 case 1:
10 printf("春季");
11 break;
12 case 2:
13 printf("夏季");
14 break;
15 case 3:
16 printf("秋季");
17 break;
18 default:
19 printf("冬季");
20 }
21 return 0;
22}
鸡兔同笼:35 个头,94 只脚,问鸡、兔各多少只?(答案,鸡 23 兔 12)
1#include<stdio.h>
2int main()
3{ int head, foot, chicken = 0, rabbit = 0;
4 printf("请输入头和腿的数量,并用空格隔开:\n");
5 scanf("%d %d", &head, &foot);
6 for (chicken=0; chicken <= head; chicken++)
7 {
8 for (rabbit=0; rabbit <= head; rabbit++)
9 {
10 if(rabbit + chicken == head && rabbit * 4 + chicken * 2 == foot)
11 printf("鸡的数量为:%d只,兔的数量为:%d只\n", chicken, rabbit);
12 }
13
14 }
15 return 0 ;
16}
计算 1 ~ 100 以内所有含 6 的数的和。
1#include<stdio.h>
2int main()
3{ int sum = 0;
4 for (int i = 0; i <= 100; i++)
5 {
6 if(i % 6 == 0 || i / 10 == 6 || i % 10 == 6)
7 sum += i;
8 }
9 printf("%d", sum);
10 return 0 ;
11}
求数列 2 / 1,3 / 2,5 / 3,8 / 5,13 / 8 … 前 20 项之和。(答案,32.660259)
1#include<stdio.h>
2int main()
3{ float sum=0, a, b, count = 1;
4 for(float a = 2; count <= 20; count++)
5 {
6 for (float b = 1; count <= 20; count++)
7 {
8 sum += a / b;
9 a += b;
10 b = a - b;
11 }
12 printf("%f", sum);
13 }
14 return 0 ;
15}
验证谷角猜想。日本数学家谷角静夫在研究自然数时发现了一个奇怪现象:对于任意一个自然数 n ,若 n 为偶数,则将其除以 2 ;若 n 为奇数,则将其乘以 3 ,然后再加 1。如此经过有限次运算后,总可以得到自然数 1。人们把谷角静夫的这一发现叫做“谷角猜想”。 要求:编写一个程序,由键盘输入一个自然数 n ,把 n 经过有限次运算后,最终变成自然数 1 的全过程打印出来。
1#include<stdio.h>
2int main()
3{ int n;
4 scanf("%d", &n);
5 while(n != 1)
6 {
7 if(n % 2 == 1)
8 {
9 n = n * 3 + 1;
10 printf("(n*3)");
11 }
12 else
13 {
14 n /= 2;
15 printf("(n/2)");
16 }
17 }
18 printf("=%d",n);
19 return 0 ;
20}
编程输出课本 P161 页编程题第 6 题的图形。
1#include<stdio.h>
2int main()
3{
4 int n = 7;
5 for (int i = 1; i <= (n+1)/2; i++)
6 {
7 for (int b= 1; b <= n-(2*i-1); b++)
8 {
9 printf(" ");
10 }
11 for (int d = 0; d < 2 * i - 1; d++)
12 {
13 printf("* ");
14 }
15 printf("\n");
16 }
17 for (int i = (n - 1) / 2; i >=1; i--)
18 {
19 for (int b = 1; b <= n - (2 * i - 1); b++)
20 {
21 printf(" ");
22 }
23 for (int d = 0; d < 2 * i - 1; d++)
24 {
25 printf("* ");
26 }
27 printf("\n");
28 }
29 return 0;
30}
从键盘输入 6 名学生的 5 门课成绩,分别统计每个学生的平均成绩(不用数组处理)。
1#include<stdio.h>
2int main()
3{ int count = 0;
4 printf("请输入六名学生的五门成绩,分别用空格隔开:\n");
5 while(count != 6)
6 { int sum = 0, grade = 0;
7 float average = 0;
8 for(int i = 1 ; i <= 5; i++)
9 {
10 scanf("%d", &grade);
11 sum += grade;
12 }
13 average = sum / 5;
14 printf("该学生的平均成绩为:%.2f\n", average);
15 count ++;
16 }
17 return 0 ;
18}
打印乘法口诀表。
1#include <stdio.h>
2
3int main(void)
4{
5 int i, j;
6 for (i = 1; i <= 9; i++) {
7 for (j = 1; j <= i; j++) {
8 printf("%dx%d=%2d ", j, i, j * i);
9 }
10 printf("\n");
11 }
12}