Ch2. Loop Structure
Ex
Input some integers and output their min, max and average values (keep three decimal places). It is guaranteed that each input number is a integer less than 1000.
Input contains many datasets, the first line of each dataset is the number of integers n, and the second line contains the n numbers. And the end mark of input is n=0, the program should overlook this dataset. There should be empty row between contiguous datasets.
Sample input:
8
2 8 3 5 1 7 3 6
4
-4 6 10 0
Sample ouput:
Case 1: 1 8 4.375
Case 2: -4 10 3.00
#include<stdio.h>
#define inf 1000000
int main()
{
int x, n, min, max=, s=, kase=;
while(scanf("%d", &n) == && n, min=inf, max=-inf){
int s=;
for(int i=;i<n;i++){
scanf("%d",&x);
s += x;
if( x< min) min = x;
if( x> max) max = x;
}
if(kase) printf("\n");
printf("Case %d: %d %d %.3f\n", ++kase, min, max, (double)s/n);
}
return ;
}
2-1 daffodil
Print all the daffodil numbers from 100-999. If the triple digits ABC meets the condition ABC=A*A*A+B*B*B+C*C*C, then it is a daffodil number. For example, 153=1*1*1+5*5*5+3*3*3, so 153is a daffodil number.
#include<stdio.h>
#include<math.h>
int main()
{
int n;
for(n=; n<=; n++)
if (n == pow(n/,)+pow(n/%,)+pow(n%,))
printf("%d\n", n);
else
continue;
return ;
}
2-2 hanxin
Hanxin let soldiers stand three people per line, five people per line and seven people per line, and he only needs to check the end line to know the total number of people.
Input many datasets, and each dataset contains three non-negetive integer a,b,c, which represents the end line number of people (a<3, b<5, c<7), output the minimium number of people (or report No answer). Given the total population is not less than 10 and no more than 100. Input ends at the end of file.
For example,
input:
2 1 6
2 1 3
output:
Case 1: 41
Case 2: No answer
#include<stdio.h>
int main()
{
int a,b,c, kase=;
scanf("%d%d%d", &a, &b, &c);
bool flag=false;
int n = ;
while( flag == false && n<=){
if((n% == a) && (n% == b) && (n% == c))
{
flag = true;
}
else
n++;
}
if (flag == true)
printf("%d\n", n);
else
printf("No answer\n");
return ;
}
2-3 triangle
Input the positive integer n<=20, output a inverted triangle.
For example, n=5:
*********
*******
****
*
#include<stdio.h>
int main()
{
int n;
scanf("%d", &n);
for(int i=; i<= n; i++){
for(int j=; j<i;j++){
printf(" ");
}
for(int k=; k<*(n-i)-;k++){
printf("*");
}
printf(" \n");
} return ;
}
2-4 susequence
Input two integers n<m<10^6, output 1/n^2+1/(1+n)^2+...+1/m^2, keep 5 decimal places. Input consists of many datasets, the end mark is n=m=0.
Hint: Mind the trap.
Sample input:
2 4
65536 655360
0 0
Sample output:
Case 1: 0.42361
Case 2: 0.00001
#include<stdio.h>
int main()
{
int n, m =;
double s=;
scanf("%d%d", &n, &m);
for(int i = ; i <= m-n; i++){
s +=1.0/(n+i)/(n+i);
}
printf("%.5f", s);
return ;
}
Trap: When the input number, n or m is very large, their product will be very large and overflow. Thus it n or m should be divided twice.
2-5 decimal
Input integer a, b,c and output the decimal format of a/b, and rounded to c decimal places. a,b <=10^6, c<=100.
Input
1 6 4
Output
0.1667
#include<stdio.h>
int main()
{
int a=,b=,c=;
int d=a%b; int s;
printf("0.");
for(int i=;i<c;i++)
{
d=d*;
s=d/b;
d=d%b;
printf("%d",s);
}
}
2-6 permutation
Form three three-digit numbers abc, def and ghi from 1,2,3,~, 9. Each figure should only be used once. abc: def: ghi=1:2:3. Output all solutions in order "abc def ghi". One solution each line. Don't think too hard on it.
#include<stdio.h>
int main()
{
int m;
for(m=;m<=;m++)
{
if((m/) != (m/%)&& (m/)!= (m%)&& (m%)!= (m/%)
&& ((m/)*(m/%)* (m%)* (*m/%) *(*m%)*(*m/)
* (*m/) * (*m/%) * (*m%) == ********)
) printf("%d %d %d\n",m,*m,*m);
}
return ;
}
Prob 1
Suppose we need to output 2,4,6,8,...,2n, one figure each line. Alter the following program to achieve this goal.
#include<stdio.h>
int main()
{
int n;
scanf("%d", &n);
for(int i=;i<=n;i++)
printf("%d\n",i);
return ;
}
Task 1
Alter line 7 not line 6.
#include<stdio.h>
int main()
{
int n;
scanf("%d", &n);
for(int i=;i<=n;i++)
printf("%d\n",*i);
return ;
}
Alter line 6 not line 7.
#include<stdio.h>
int main()
{
int n;
scanf("%d", &n);
for(int i=;i<=*n;i=i+)
printf("%d\n",i);
return ;
}
Prob 1
What's the result of the following program?
#include<stdio.h>
int main()
{
double i;
for(i=; i!= ; i+=0.1)
printf("%.1f\n", i); return ;
}
A lot of numbers...because i is double and 10 is an integer, and double can not be rounded to integer....
Ch2. Loop Structure的更多相关文章
- Texture tiling and swizzling
Texture tiling and swizzling 原帖地址:http://fgiesen.wordpress.com If you’re working with images in your ...
- libev代码
就是贴上来: ev.c: /* * libev event processing core, watcher management */ /* this big block deduces confi ...
- Represent code in math equations
Introduce The article shows a way to use math equations to represent code's logical. Key ideas logic ...
- Lab 6-4
In this lab, we'll analyze the malware found in the file Lab06-04.exe. Questions and Short Answers W ...
- 课程五(Sequence Models),第一 周(Recurrent Neural Networks) —— 2.Programming assignments:Dinosaur Island - Character-Level Language Modeling
Character level language model - Dinosaurus land Welcome to Dinosaurus Island! 65 million years ago, ...
- (C/C++学习笔记) 八. 程序控制语句
八. 程序控制语句 ● 基础知识 算法的基本控制结构: 顺序结构(sequential structure), 选择结构(case structure), 循环结构(loop structure) c ...
- PHP学习 流程控制和数组
flow control 流程控制decision structure 判断结构loop structure 循环结构 if(condition){statement1;} if(){}else{} ...
- libev loop_init分析
尼玛 C语言学不好真是桑心呐! 看了libev的代码有一种想死的感觉,但是还是要硬着头皮看下去,一定看完! /* initialise a loop structure, must be zero-i ...
- [Algorithm] 1. A+B Problem
Description Write a function that add two numbers A and B. Clarification Are a and b both 32-bit int ...
随机推荐
- 第一个 lua 程序
第一个 lua 程序 lua 提供一个交互式编程模式, 直接在命令行输入 lua 开启 $ lua > -- 此处可以输入 lua 程序 lua 脚本执行时的 2 种方式 lua + lua 脚 ...
- ios系统判断某些适配 __IPHONE_OS_VERSION_MAX_ALLOWED
由于app的最新设计字体是ios9之后的平方字体,但app最低支持ios7,so...想在常量配置文件类里统一适配下字体,如下: //适配字体,ios9及以上系统使用新字体--平方字体 #if __I ...
- SecureCRT中vim乱码问题
Options->Session Options,接着在Terminal->Appearance页签中设定Character encoding为Unicode (UTF-8).
- python 错误之SyntaxError: Missing parentheses in call to 'print'
SyntaxError: Missing parentheses in call to 'print' 由于python的版本差异,造成的错误. python2: print "hello ...
- centos系统修改网络配置注意事项
这也是无意之中发现的,我在做一个远程修改工控机网络配置的程序, 网络配置参数/etc/sysconfig/network-scripts/ifcfg-enp1s0下面,当然名字可能不一样ifcfg-e ...
- MySQL开发总结(有点长..耐心看)
一.理解MySQL基本概念 1.MySQL软件:MySQL实际上就是一软件,是一工具,是关系型数据库管理系统软件 2.MySQL数据库:就是按照数据结构来组织.存储和管理数据的仓库 3.MySQL数据 ...
- 使用HTMLParser爬取标签内容
以此网站为例 import urllib.request from html.parser import HTMLParser from html.entities import name2codep ...
- vs2015c++/MFC入门知识全集/实例规范书籍视频下载孙鑫c++对话框计算器基础控件使用教程系列
VIP教程可免费看.可免费下载前部分试看教程地址:http://dwz.cn/4PcfPk免费下载地址:http://dwz.cn/mfc888 本课程目录 67章 [MFC项目开发第01天]Wind ...
- 分享一个完整的Mybatis分页解决方案
Mybatis 的物理分页是应用中的一个难点,特别是配合检索和排序功能叠加时更是如此. 我在最近的项目中开发了这个通用分页器,过程中参考了站内不少好文章,阅读源码帮助更大minglisoft.cn/t ...
- Java 多线程详解(三)------线程的同步
Java 多线程详解(一)------概念的引入:http://www.cnblogs.com/ysocean/p/6882988.html Java 多线程详解(二)------如何创建进程和线程: ...