- 用for循环控制语句编程:输出一张华氏-摄氏温度转换表,将华氏温度F转换成相应的摄氏温度C后输出,华氏温度的取值范围是[100, 200],每次增加20°F。计算公式:C = (5 / 9)(F - 32)。
一.实验过程:
#include <stdio.h>
int main() {
int F;
double C;
printf("华氏温度转摄氏温度表:\n");
for(F = 100; F <= 200; F += 20) {
C = (5.0 / 9) * (F - 32);
printf("%d°F = %.1f°C\n", F, C);
}
return 0;
}
2.输出所有的“水仙花数”。所谓“水仙花数”,是指一个三位数,其各位数字的立方和等于该数本身。例如,153是“水仙花数”,因为
一.实验过程:
#include <stdio.h>
int main() {
int num, originalNum, remainder, result = 0;
printf("水仙花数有: \n");
for(num = 100; num < 1000; num++) {
originalNum = num;
result = 0;
while(originalNum != 0) {
remainder = originalNum % 10;
result += remainder * remainder * remainder;
originalNum /= 10;
}
if(result == num)
printf("%d\n", num);
}
return 0;
}
- 有一个分数序列:2/1,3/2,5/3,8/5,13/8,21/13...
求出这个数列的前20项之和。
求出这个数列的前20项之和。
求出这个数列的前20项之和。
一.实验过程:
#include <stdio.h>
int main() {
double sum = 0.0;
for(int i = 1; i <= 20; i++) {
sum += 1.0 / i;
}
printf("数列的前20项之和为: %.2f\n", sum);
return 0;
}
4. 输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。
提示:灵活使用getchar() 函数来按顺序读入所输入字符串里面的各个字符。
一.实验过程:
#include <stdio.h>
int main() {
char ch;
int letters = 0, spaces = 0, digits = 0, others = 0;
printf("请输入一些字符:\n");
while((ch = getchar()) != '\\n') {
if((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z'))
letters++;
else if(ch == ' ')
spaces++;
else if(ch >= '0' && ch <= '9')
digits++;
else
others++;
}
printf("字母=%d, 空格=%d, 数字=%d, 其他=%d\n", letters, spaces, digits, others);
return 0;
}
- 爱因斯坦数学题。爱因斯坦曾出过这样一道数学题:有一条长阶梯,若每步跨2阶,最后剩下1阶;若每步跨3阶,最后剩下2阶;若每步跨5阶,最后剩下4阶;若每步跨6阶,最后剩下5阶;只有每步跨7阶,最后才正好1阶不剩。请问,这条阶梯至少有多少阶?
一.实验过程:
#include <stdio.h>
int main() {
int x = 1;
while(1) {
if(x % 2 == 1 && x % 3 == 2 && x % 5 == 4 && x % 6 == 5 && x % 7 == 0) {
printf("这条阶梯至少有 %d 阶\n", x);
break;
}
x++;
}
return 0;
}
- 编程求解马克思手稿中的数学题。
马克思手稿中有一道趣味数学题:有30个人,其中有男人、女人和小孩,在一家饭馆里吃饭共花了50先令,每个男人各花3先令,每个女人各花2先令,每个小孩各花1先令,问男人、女人和小孩各有几人?
一.实验过程:
#include <stdio.h>
int main() {
int men, women, children;
for(men = 0; men <= 30; men++) {
for(women = 0; women <= 30 - men; women++) {
children = 30 - men - women;
if(men*3 + women*2 + children == 50) {
printf("男人=%d, 女人=%d, 小孩=%d\n", men, women, children);
}
}
}
return 0;
}
- 输入n值,运用循环结构输出下图所示高和上底均为n的直角梯形。
*****
******
*******
********
*********
n=5时的直角梯形
一.实验过程:
#include <stdio.h>
int main() {
int n;
printf("请输入n的值: ");
scanf("%d", &n);
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= n - i; j++) {
printf(" ");
}
for(int k = 1; k <= n + i - 1; k++) {
printf("*");
}
printf("\n");
}
return 0;
}