有趣的程序循环题目,适合初学for循环

本金10000元存入银行,年利率是百分之三,每过1年,将本金和利息相加作为新的本金。计算5年后,获得的本金是多少?

计算1000以内所有不能被7整除的整数之和

计算出1—100之间所有不能被3整除的整数的和大于(或等于)2000的数字。

猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。

1、水仙花数
打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。
【难度系数】▲
【分析】153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。
【代码】
#include

int main(void)
{
int i = 0;
int sum = 0;
int j = 0;

for(i = 100; i < 1000; i ++) { sum = 0; int temp = i; while(temp) { j = temp % 10; temp /= 10; sum += j * j * j; } if(sum == i) { printf("%d ", i); } } printf("\n"); return 0; } 2、分解质因数 将一个正整数分解质因数。 【难度系数】▲▲▲▲ 【分析】例如:输入90,打印出90=2*3*3*5。 【代码】 #include

int main(void)
{
int num = 0;
int i = 0;
int j = 0;

scanf(“%d”, &num);

printf(“%d = “, num);
for(i = 2; i < num; i ++) { if(num % i == 0) { printf("%d*", i); num /= i; i = 1; } } printf("%d\n", num); return 0; } 3、条件运算符的嵌套 利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。

#include

int main(void)
{
int score = 0;

scanf(“%d”, &score);
if(score >= 90)
{
printf(“A\n”);
}
else
{
if(score >= 60 && score <= 89) { printf("B\n"); } else { printf("C\n"); } } /* char ch = 0; int score = 0; scanf("%d", &score); ch = (score >= 90) ? ‘A’ : (score >= 60) ? ‘B’ : ‘c’;

printf(“%c\n”, ch);
*/
return 0;
}

4、统计字符个数
输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
【难度系数】▲▲▲
【分析】
【代码】
#include

int main(void)
{
char c = 0;
int arr[4] = {};

while(1)
{
scanf(“%c”, &c);
if(c == ‘\n’)
break;
if(c >= ‘a’ && c <= 'z' || c >= ‘A’ && c <= 'Z') arr[0] ++; else if(c == ' ') arr[1] ++; else if(c >= ‘0’ && c <= '9') arr[2] ++; else arr[3] ++; } printf("英文个数为:%d\n\ 空个数为: %d\n\ 数字个数为:%d\n\ 其他字符个数为:%d\n",arr[0],arr[1],arr[2],arr[3]); return 0; } 5、求s=a+aa+aaa+aa...a的值 【难度系数】▲ 【分析】 【代码】 #include

int main(void)
{
int n = 0;
int i = 0;
int sum = 0;
int num = 0;

scanf(“%d”, &n);
for(i = 0; i < n; i ++) { num = num*10 + 2; sum += num; } printf("sum = %d\n", sum); return 0; } 6、猴子吃桃问题 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。 【难度系数】▲▲ 【分析】 利用循环 循环开始: i = 9 循环结束: i >= 1
循环增量: i —
给num赋初值为1,即第10天的
桃子个数为1
那么往上每一天的桃子个数为
后一天的个数加1 再乘以2
【代码】
#include

int main(void)
{
int i = 0;
int num = 1;

for(i = 9; i >= 1; i–)
{
num = (num + 1) * 2;
}
printf(“num = %d\n”, num);
return 0;
}

7、乒乓球比赛
两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。
【难度系数】▲
【分析】
a 只不和 x比,即a可以和除了x比
c 不和x,z比,即c可以和y比
剩下的没有约束条件
【代码】
#include

int main(void)
{
char ch1[] = {‘a’, ‘b’, ‘c’};
char ch2[] = {‘x’, ‘y’, ‘z’};
int i, j;

for(i = 0; i < 3; i ++) { for(j = 0; j < 3; j ++) { if(ch1[i] == 'a' && ch2[j] != 'x') { printf("%c --- > %c\n”, ch1[i], ch2[j]);
}
else if(ch1[i] == ‘c’ && ch2[j] != ‘x’ && ch2[j] != ‘z’)
{
printf(“%c — > %c\n”, ch1[i], ch2[j]);
}
else if(ch1[i] == ‘b’)
{
printf(“%c — > %c\n”, ch1[i], ch2[j]);
}
}
}
return 0;
}

8、求1+2!+3!+…+20!的值
求1+2!+3!+…+20!的和
【难度系数】▲▲▲▲
【分析】
双重循环
外循环确定所需求阶乘的个数
内循环求每一个数的阶乘
acc保存每一个阶乘
sum保存前i个数的阶乘之和
【代码】
#include

int main(void)
{
int i = 0;
int j = 0;
int acc = 1;
int sum = 0;

for(i = 1; i <= 20; i ++) { acc = 1; for(j = 1; j <= i; j ++) { acc *= j; } sum += acc; } printf("sum = %d\n", sum); return 0; } 9、逆序打印正整数 给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。 【难度系数】▲▲▲ 【分析】 【代码】 #include

int main(void)
{
int num = 0;
int counter = 0;

scanf(“%d”, &num);
if(num == 0)
printf(“%d 1位\n”, num);
else
{
while(num)//1234
{
counter ++;
printf(“%d “, num % 10);
num /= 10;
}
printf(“\n%d位数\n”, counter);
}
return 0;
}

10、星期判断
请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。
【难度系数】▲
【分析】
【代码】
#include

int main(void)
{
char ch = 0;

scanf(“%c”, &ch);
getchar();
if(ch == ‘M’)
printf(“星期一!\n”);
else if(ch == ‘T’)
{
scanf(“%c”, &ch);
if(ch == ‘u’)
printf(“星期二!\n”);
else if(ch == ‘h’)
printf(“星期四!\n”);
}
else if(ch == ‘W’)
printf(“星期三!\n”);
else if(ch == ‘F’)
printf(“星期五!\n”);
else if(ch == ‘S’)
{
scanf(“%c”, &ch);
if(ch == ‘a’)
printf(“星期六!\n”);
else if(ch == ‘u’)
printf(“星期日!\n”);
}
return 0;
}

11、乘积最大
【难度系数】▲▲▲
【分析】
【代码】
#include

int main(void)
{
int a = 0;
int b = 0;
int c = 0;
/*
a ~ 1 —> 18
b ~ 1 —> 18
c ~ 1 —> 18
*/
int i, j, num = 0;
int max = 0;
for(i = 1; i <= 18; i ++) { for(j = 1; j <= 20 - 1 - i; j ++) { num = i * j * (20 - i - j); if(max < num) { max = num; a = i; b = j; } } } printf("max = %d, a = %d, b = %d, c = %d\n", max, a, b, 20-a-b); return 0; } 打印倒三角 打印倒三角形,输入一个底边长n 例如: n = 7 * * * * * * * * * * * * * * * *


This entry was posted in 程序视点 and tagged , . Bookmark the permalink.
月小升QQ 2651044202, 技术交流QQ群 178491360
首发地址:月小升博客https://java-er.com/blog/for-list-study/
无特殊说明,文章均为月小升原创,欢迎转载,转载请注明本文地址,谢谢
您的评论是我写作的动力.
2020.03.24 评论已经全局关闭,有事加QQ聊天