C语言编程练习——循环结构(一)
帮一个 C语言小白 朋友撸代码,改进的空间还有很大,希望大神多多指教!
一、生成3的乘方表
输入一个非负整数n,生成一张3的乘方表,输出30~3n的值。可调用幂函数计算3的乘方。
输入格式:
输入在一行中给出一个非负整数n。
输出格式:
按照幂的递增顺序输出n+1行,每行格式为“pow(3,i) = 3的i次幂的值”。题目保证输出数据不超过长整型整数的范围。
输入样例:
3
输出样例:
pow(3,0) = 1
pow(3,1) = 3
pow(3,2) = 9
pow(3,3) = 27
#include<stdio.h>
#include<math.h>
int main(){ int n,i,y;scanf("%d",&n);for(i = 0; i <= n; i++){y = pow(3,i);printf("pow(3,%d) = %d\n",i,y);}
return 0;
}
二、统计学生成绩
本题要求编写程序读入N个学生的百分制成绩,统计五分制成绩的分布。百分制成绩到五分制成绩的转换规则:
- 大于等于90分为A;
- 小于90且大于等于80为B;
- 小于80且大于等于70为C;
- 小于70且大于等于60为D;
- 小于60为E。
输入格式:
输入在第一行中给出一个正整数N(≤1000),即学生人数;第二行中给出N个学生的百分制成绩,其间以空格分隔。
输出格式:
在一行中输出A、B、C、D、E对应的五分制成绩的人数分布,数字间以空格分隔,行末不得有多余空格。
输入样例:
7
77 54 92 73 60 65 69
输出样例:
1 0 2 3 1
#include<stdio.h>
int main(){int N,grade,A = 0, B = 0, C = 0, D = 0, E = 0;scanf("%d",&N);while(N){scanf("%d",&grade);N--;if(grade >= 90){A++;}else if(grade >= 80){B++;}else if(grade >= 70){C++;}else if(grade >= 60){D++;}else{E++;}}printf("%d %d %d %d %d",A,B,C,D,E);
return 0;
}
三、输出闰年
输出21世纪中截止某个年份以来的所有闰年年份。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。
输入格式:
输入在一行中给出21世纪的某个截止年份。
输出格式:
逐行输出满足条件的所有闰年年份,即每个年份占一行。输入若非21世纪的年份则输出"Invalid year!"。若不存在任何闰年,则输出“None”。
输入样例1:
2048
输出样例1:
2004
2008
2012
2016
2020
2024
2028
2032
2036
2040
2044
2048
输入样例2:
2000
输出样例2:
Invalid year!
#include<stdio.h>
int main(){int year,i,n = 0;scanf("%d",&year);if(year > 2100 || year <= 2000){printf("Invalid year!");}else{for(i = 2001; i <= year; i++){if(i % 4 == 0 && i % 100 != 0 || i % 400 == 0){printf("%d\n",i);n = 1;}}if(n == 0){printf("None");}}
return 0;
}
四、寻找250
对方不想和你说话,并向你扔了一串数…… 而你必须从这一串数字中找到“250”这个高大上的感人数字。
输入格式:
输入在一行中给出不知道多少个绝对值不超过1000的整数,其中保证至少存在一个“250”。
输出格式:
在一行中输出第一次出现的“250”是对方扔过来的第几个数字(计数从1开始)。题目保证输出的数字在整型范围内。
输入样例:
888 666 123 -233 250 13 250 -222
输出样例:
5
#include<stdio.h>
int main(){int k = 1,n;while(scanf("%d",&n)){if(n != 250){k++;}else{break;}}printf("%d",k);
return 0;
}
五、最佳情侣身高差
专家通过多组情侣研究数据发现,最佳的情侣身高差遵循着一个公式:(女方的身高)×1.09 =(男方的身高)。如果符合,你俩的身高差不管是牵手、拥抱、接吻,都是最和谐的差度。下面就请你写个程序,为任意一位用户计算他/她的情侣的最佳身高。
输入格式:
输入第一行给出正整数N(≤10),为前来查询的用户数。随后N行,每行按照“性别 身高”的格式给出前来查询的用户的性别和身高,其中“性别”为“F”表示女性、“M”表示男性;“身高”为区间 [1.0, 3.0] 之间的实数。
输出格式:
对每一个查询,在一行中为该用户计算出其情侣的最佳身高,保留小数点后2位。
输入样例:
2
M 1.75
F 1.8
输出样例:
1.61
1.96
#include<stdio.h>
int main(){int n;char ch;float height;scanf("%d\n",&n);while(n--){scanf("%c %f",&ch,&height);getchar();if(ch == 'F'){printf("%.2f\n",height * 1.09);}else{printf("%.2f\n",height / 1.09);}}
return 0;
}
六、作品评分
全国中小学生Scratch作品大赛拉开了序幕。每个参赛选手可以通过网络直接上传作品。本次比赛人人可做评委。每个网络评委可以通过网络对每一件作品进行打分。评分系统也是请程序高手设计的,能自动去掉一个最高分和一个最低分,求出平均分。
输入格式:
输入数据包括两行: 第一行为n,表示n个评委,n>2。 第二行是n个评委的打分,分数之间有一个空格。打分是可以带有小数部分的。
输出格式:
输出平均分,结果保留两位小数。
输入样例:
6
10 9 8 7.9 9 9.5
输出样例:
8.88
#include<stdio.h>
int main(){int n;float grade,max = 0.0, min = 10.0,sum = 0.0,average = 0.0;scanf("%d",&n);int temp = n;while(n){scanf("%f",&grade);n--;sum = sum + grade;if(grade > max){max = grade;}if(grade < min){min = grade;}}average = (sum - max - min) / (temp-2);printf("%.2f",average);return 0;}
七、求平方根序列前N项和
本题要求编写程序,计算平方根序列√1+√2+√3+⋯的前N项之和。可包含头文件math.h,并调用sqrt函数求平方根。
输入格式:
输入在一行中给出一个正整数N。
输出格式:
在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后两位。题目保证计算结果不超过双精度范围。
输入样例:
10
输出样例:
sum = 22.47
#include<stdio.h>
#include<math.h>
int main(){long int N,i;double sum;scanf("%ld",&N);for(i = 1; i <= N; i++){sum += sqrt(i);}printf("sum = %.2lf",sum);return 0;
}
八、求分数序列前N项和
本题要求编写程序,计算序列 2/1+3/2+5/3+8/5+… 的前N项之和。注意该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子。
输入格式:
输入在一行中给出一个正整数N。
输出格式:
在一行中输出部分和的值,精确到小数点后两位。题目保证计算结果不超过双精度范围。
输入样例:
20
输出样例:
32.66
#include <stdio.h>
main(){int N,a;double d,i,j;i=2;d=0.00;a=1;scanf("%d",&N);for(j=1;a<=N;j=i-j){d+=i/j;i=i+j;a++;}printf("%.2lf",d);
}
九、打印九九口诀表
下面是一个完整的下三角九九口诀表:
11=1
12=2 22=4
13=3 23=6 33=9
14=4 24=8 34=12 44=16
15=5 25=10 35=15 45=20 55=25
16=6 26=12 36=18 46=24 56=30 66=36
17=7 27=14 37=21 47=28 57=35 67=42 77=49
18=8 28=16 38=24 48=32 58=40 68=48 78=56 88=64
19=9 29=18 39=27 49=36 59=45 69=54 79=63 89=72 9*9=81
本题要求对任意给定的一位正整数N,输出从11到NN的部分口诀表。
输入格式:
输入在一行中给出一个正整数N(1≤N≤9)。
输出格式:
输出下三角N*N部分口诀表,其中等号右边数字占4位、左对齐。
输入样例:
4
输出样例:
11=1
12=2 22=4
13=3 23=6 33=9
14=4 24=8 34=12 44=16
#include<stdio.h>
int main(){int i,j,N;scanf("%d",&N);for(i = 1; i <= N; i++){for(j = 1; j <= i; j++){printf("%d*%d=%-4d",j,i,i*j);if(j == i){printf("\n");}}}return 0;
}
十、统计素数并求和
本题要求统计给定整数M和N区间内素数的个数并对它们求和。
输入格式:
输入在一行中给出两个正整数M和N(1≤M≤N≤500)。
输出格式:
在一行中顺序输出M和N区间内素数的个数以及它们的和,数字间以空格分隔。
输入样例:
10 31
输出样例:
7 143
#include <stdio.h>
main()
{int M,N,i,j;int a = 0;int b = 0;scanf("%d %d",&M,&N);if(M == 0 && N == 0){printf("0 0");}if(M == 1 && N >= 1){for(i = M; i <= N; i++){int k = 0;for(j = 2; j < i; j++){if(i % j == 0){k = 1;break;}}if(k == 0){a++;b += i;}}a--;b--;printf("%d %d",a,b);}if(M > 1 && N > 1){for(i = M; i <= N; i++){int k = 0;for(j = 2; j < i; j++){if(i % j == 0){k = 1;break;}}if(k == 0){a++;b += i;} }printf("%d %d",a,b);}
}
十一、输出三角形字符阵列
本题要求编写程序,输出n行由大写字母A开始构成的三角形字符阵列。
输入格式:
输入在一行中给出一个正整数n(1≤n<7)。
输出格式:
输出n行由大写字母A开始构成的三角形字符阵列。格式见输出样例,其中每个字母后面都有一个空格。
输入样例:
4
输出样例:
A B C D
E F G
H I
J
#include<stdio.h>
int main()
{int n,i,j;char ch = 'A';scanf("%d",&n);for(i = 1; i <= n; i++){for(j = 1; j <= n + 1 - i; j++){printf("%c ",ch);ch++;}printf("\n");}return 0;
}
十二、特殊a串数列求和
给定两个均不超过9的正整数a和n,要求编写程序求a+aa+aaa++⋯+aa⋯a(n个a)之和。
输入格式:
输入在一行中给出不超过9的正整数a和n。
输出格式:
在一行中按照“s = 对应的和”的格式输出。
输入样例:
2 3
输出样例:
s = 246
#include<stdio.h>
int main()
{int a,n,i,j,sum = 0;scanf("%d %d",&a,&n);int temp = a;for(i = 1; i <= n; i++){sum += a; a = a * 10 + temp;}printf("s = %d",sum);return 0;
}
十三、约分最简分式
分数可以表示为分子/分母的形式。编写一个程序,要求用户输入一个分数,然后将其约分为最简分式。最简分式是指分子和分母不具有可以约分的成分了。如6/12可以被约分为1/2。当分子大于分母时,不需要表达为整数又分数的形式,即11/8还是11/8;而当分子分母相等时,仍然表达为1/1的分数形式。
输入格式:
输入在一行中给出一个分数,分子和分母中间以斜杠/分隔,如:12/34表示34分之12。分子和分母都是正整数(不包含0,如果不清楚正整数的定义的话)。提示:在scanf的格式字符串中加入/,让scanf来处理这个斜杠。
输出格式:
在一行中输出这个分数对应的最简分式,格式与输入的相同,即采用分子/分母的形式表示分数。如 5/6表示6分之5。
输入样例:
66/120
输出样例:
11/20
#include<stdio.h>
int main()
{int x,y,i,flag = 0;scanf("%d/%d",&x,&y);if(x == y){printf("1/1");}else{int min = (x < y) ? x : y;for(i = min; i >= 2; i--){if(x % i == 0 && y % i == 0){printf("%d/%d",x/i,y/i);flag = 1;break;}}if(flag == 0){printf("%d/%d",x,y);}}return 0;
}
十四、输出N以内的所有素数
编程找出N(2≤N≤500)以内(即小于等于N)的所有素数。
输入格式:
输入整数N(2≤N≤500)。
输出格式:
每8个一行输出N以内的所有素数。注意每个数据均占5列,且采用右对齐。
输入样例1:
50
输出样例:
2 3 5 7 11 13 17 19
23 29 31 37 41 43 47
#include<stdio.h>
#include<math.h>
main()
{int N,i,j,prime = 0,count = 0;scanf("%d",&N);for(i = 2; i <= N; i++){ if(isPrime(i) == 0){printf("%5d",i);count++;if(count % 8 == 0){printf("\n");}}}
}
int isPrime(int x){int i,flag = 0;for(i = 2; i <= x/2; i++){if(x % i == 0){flag = 1;}}return(flag);
}
十五、跟奥巴马一起画方块
美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形。现在你也跟他一起画吧!
输入格式:
输入在一行中给出正方形边长N(3≤N≤21)和组成正方形边的某种字符C,间隔一个空格。
输出格式:
输出由给定字符C画出的正方形。但是注意到行间距比列间距大,所以为了让结果看上去更像正方形,我们输出的行数实际上是列数的50%(四舍五入取整)。
输入样例:
10 a
输出样例:
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
#include<stdio.h>
int main()
{int N,i,j;float n;char ch;scanf("%d %c",&N,&ch);n = (int)(N/2.0 + 0.5);for(i = 1; i <= n; i++){for(j = 1; j <= N; j++){printf("%c",ch);}printf("\n");}return 0;
}
C语言编程练习——循环结构(一)相关推荐
- 厦门理工学院c语言实验循环,厦门理工学院C语言 实验4_循环结构..doc
讼手酉凹坷磋寄价耍渗策巩够第益蒋错佳茶止甚聪驰施受诺贷福挂劫厩凛胞上踌器材话喷糙去值帆悲群河缆缘峦矛装榜驰典师孟洛捉麓留韵屿泞匿猫帅葫墒豹底挚迷祥册矩胃必吠怀鸡瓷关厩敢痴幻豺载傲拌枕爵际编童娥烯掠臭放 ...
- c语言条件型循环结构报告,C语言循环结构实习报告 - 副本
认识(实习)报告 实验(实习)名称循环结构程序设计 日期得分指导教师系专业年级班次姓名学号 一. 实验目的 (1)掌握在程序设计条件型循环结构时,如何正确地设定循环条件,以及如何控制循环的次数. ⑵了 ...
- c语言循环设计思想结构,C语言程序设计_05循环结构程序设计讲述.pptx
C语言程序设计_05循环结构程序设计讲述 第5章 循环结构程序设计5.1 while循环结构5.2 do-while循环结构5.3 for循环结构5.4 与循环有关的控制语句5.5 3种循环语句的比较 ...
- 经典c语言程序设计算法,C语言程序设计和循环结构相关的经典算法之一.ppt
C语言程序设计和循环结构相关的经典算法之一 第七讲 循环结构的经典算法之一 程序设计举例 ;教 学目 的 :1.灵活运用循环语句 2.编写一些基本算法程序 教学重点和难点:重点:判断素数,求最大公约数 ...
- 7-16 梅森数(2022-高级语言程序设计练习——循环结构程序设计)
目录 题目链接: 题目: 输入格式: 输出格式: 输入样例: 输出样例: AC代码: 提交正确截图: 实现语言:C 编译器:gcc 题目链接: 题目详情 - 7-16 梅森数 (pintia.cn) ...
- (四)shell编程之循环结构
shell编程之循环结构 #本机课程目标 掌握for循环语句的基本语法结构 掌握while和until循环语句的基本语法结构 一.for循环语句 关键词:爱的魔力转圈圈
- c语言菜单程序循环结构举例,C语言程序设计课件 第4章 循环结构.ppt
C语言程序设计课件 第4章 循环结构.ppt 循环嵌套应用举例 [例4.8]从键盘上输入n的值为5,编程打印具有如下规律的对称图形. @ @ @ @ @ @ @ @ @ @ @ @ @ 行号(i)空格 ...
- c语言循环结构常用语句,浅析C语言三种循环结构语句
摘 要: C语言是一种广泛使用的高级程序设计语言,文章对C语言中三种循环结构语句进行了分析和比较,使学生更容易理解和掌握. 关键词: C语言 for循环 while循环 do-while循环 一.引言 ...
- Go 语言编程 — 高级数据类型 — 结构体
目录 文章目录 目录 结构体 访问结构体成员 向函数传递结构体 结构体指针 结构体标签(Struct Tag) 结构体 Golang 中,结构体是由一系列具有相同类型或不同类型的数据构成的数据集合.与 ...
最新文章
- 利用OLED构成可控点光源: SSD1306
- 测试用例的常用设计方法
- reactjs路由router的基本使用
- php项目技术选型方案,php-现有资源下,项目技术选型求助
- 一张图看懂encodeURI、encodeURIComponent、decodeURI、decodeURIComponent的区别
- CCIE-LAB-第九篇-BGP下一跳+EBGP防环+伪装AS+通过标签过滤路由
- excel vba 如何将日期周几转换成文字_Excel 从精通到入门
- (转)分布式文件存储FastDFS(四)配置fastdfs-apache-module
- Linux内核空间内存申请函数kmalloc、kzalloc、vmalloc的区别
- zookeeper使用分布式锁
- div中赋值html字符串
- webpack——一站到底一
- .NET组件程序设计0723
- 2017.4找工作面试记录-第三周(2)--金蝶
- Excel表复制、取消工作表保护、解除冻结操作
- 网上银行“安全登录控件”分析(zt)
- 全国快递物流查询公司mysql数据库语句
- 星环科技TDH8.0使用必读2: 10种数据模型全支持 未来属于多模型大数据平台
- 公共命名空间和office文档
- 6 MySQL 集群Cluster
热门文章
- Doo Prime 德璞资本:标普500期货交易小知识,看懂影响价格走势的因素
- 编码的奥秘:高级语言和低级语言
- ISCC2018MISC猫的心事writeup
- SCI论文解读复现【NO.2】基于注意机制的YOLOv5改进算法在行星图像中的应用(代码已复现)
- webstrom主题、字体设置
- WKwebview 白屏问题——(WebApp/HybirdApp)
- ORB-SLAM2 ORBmatcher.cc读代码一
- 《给研究生的学术建议》13——研究设计
- Google的霸道:我就是要独享安卓源代码!
- 人工智能可以阻止基于物联网的 DDoS 攻击——研究