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 ...
随机推荐
- 基于opencv的车牌识别系统
前言 学习了很长一段时间了,需要沉淀下,而最好的办法就是做一个东西来应用学习的东西,同时也是一个学习的过程. 概述 OpenCV的全称是:Open Source Computer Vision ...
- node-webkit学习之【无边框窗口用JS实现拖动改变大小等】
效果如下图 原生的如下图(原生的用在自己的app上面太丑了,并且还带边框,所以重写了左上角的三个功能键) 1.首先了解一下nw底下的package.json 文件 { "name" ...
- Unity粒子系统
最近比较清闲,就重新看了一遍例子系统,感觉能把效果做的炫酷对于初学者来说并不是一件容易的事,但是回头想想,最重要的原因可能还是没有把Particle Systems组件研究透吧,温故而知新,一起复习一 ...
- 内嵌的Component调用外部的方法
如果一个内嵌的Component控件需要调用外部定义的方法,用outerDocument.方法名来调用,前提是该方法是public的.如:<mx:DataGridColumn headerTex ...
- C语言学习第五章
今天要进行一个重要元素数组的学习了.这一章要掌握什么是数组,数组怎么样命名,数组怎么样使用,以及一些常见的错误和需要注意的事项. 一. 数组的基本概念 数组是可以在内存中连续存储多个元素的结 ...
- FrameBuffer系列 之 相关结构与结构体
在linux中,fb设备驱动的源码主要在Fb.h (linux2.6.28\include\linux)和Fbmem.c(linux2.6.28\drivers\video)两个文件中,它们是fb设备 ...
- 【算法系列学习】codeforces C. Mike and gcd problem
C. Mike and gcd problem http://www.cnblogs.com/BBBob/p/6746721.html #include<iostream> #includ ...
- javascript 六种数据类型(一)
js的数据类型和常见隐式转化逻辑. 一.六种数据类型 原始类型(基本类型):按值访问,可以操作保存在变量中实际的值.原始类型汇总中null和undefined比较特殊. 引用类型:引用类型的值是保存在 ...
- 小谈ThinkPHP
ThinkPHP也是一个MVC框架,分视图.控制器和模型,和Yii框架相比相对较好理解,并且是轻量级的框架(相对于Yii来说),在使用Yii框架时候如果将框架放在项目文件中,用编辑器打开文件都比较慢, ...
- 转载+++++iptables详解+++++转载
转载:http://blog.chinaunix.net/uid-26495963-id-3279216.html 一.前言 防火墙,其实说白了讲,就是用于实现Linux下访问控制的功能的,它分为硬件 ...