时间:2019.4.26

@

先借鉴一下ACM的输入格式

OJ题中不少输入的时候都是不指定输入多少

同时要指定输入结束的标志

详情可以看这里

https://wenku.baidu.com/view/a7bf96616ad97f192279168884868762cbaebb60.html

更新一下之前博主的大意 导致下面的图片错误,不过你实际运行肯定是没有错误的(刚又测试了一下)

错误我留着 长记性

  1. void BubbleSort(int a[],int len){
  2. int temp;
  3. for(int i=0;i<len-1;i++){
  4. for(int j=i;j<len;j++){
  5. if(a[j]>a[j+1]){
  6. temp=a[j];
  7. a[j]=a[j+1];
  8. a[j+1]=temp;
  9. }
  10. }
  11. }
  12. }

多组输入

  1. #include<stdio.h>
  2. int main()
  3. {
  4. int n, i;
  5. while (scanf ("%d", &n)!=EOF){
  6. int a[41];
  7. float b[41];
  8. float sum = 0.0, sum1 = 0.0;
  9. for (i = 0; i < n; ++i){
  10. scanf ("%d%f",&a[i], &b[i]);
  11. sum += a[i]*b[i];
  12. sum1 += a[i];
  13. }
  14. printf ("%.2f\n", sum/sum1);
  15. }
  16. return 0;
  17. }

前言

冒泡排序核心代码

  1. void BubbleSort3(int a[],int n){
  2. int t,i,j;
  3. //冒泡排序的核心部分
  4. for(i=0;i<n-1;i++) //n个数排序,只用进行n-1趟
  5. {
  6. for(j=0;j<n-i;j++) //从第1位开始比较直到最后一个尚?归位的数,想一想为什么到n-i就可以了。
  7. {
  8. if(a[j]>a[j+1]) //比较大小并交换
  9. { t=a[j]; a[j]=a[j+1]; a[j+1]=t; }
  10. }
  11. }
  12. }

第一题 多组冒泡排序

(难度2颗星版本)

要求输入

2

5

5 4 12 32 16

5

10 9 8 24 12

输出

4 5 12 16 32

8 9 10 12 24

  1. #include<stdio.h>
  2. #define Max 100
  3. void BubbleSort(int a[],int len);
  4. int main()
  5. {
  6. int n, i;
  7. scanf("%d",&n);
  8. while(n--){
  9. int arr[Max];
  10. int len=0;
  11. int count;
  12. scanf("%d",&count);
  13. while(count--){
  14. scanf("%d",&arr[len++]);
  15. }
  16. BubbleSort(arr,len);
  17. for(i=0;i<len;i++){
  18. printf("%d ",arr[i]);
  19. }
  20. printf("\n");
  21. }
  22. return 0;
  23. }
  24. void BubbleSort(int a[],int len){
  25. int temp;
  26. for(int i=0;i<len-1;i++){
  27. for(int j=0;j<len-i;j++){
  28. if(a[j]>a[j+1]){
  29. temp=a[j];
  30. a[j]=a[j+1];
  31. a[j+1]=temp;
  32. }
  33. }
  34. }
  35. }

成功输出

(难度3颗星版本)

每组数以0结尾(0位结束标志)

输入

2

5 4 12 32 16 0

10 9 8 24 12 0

输出

4 5 12 16 32

8 9 10 12 24

  1. #include<stdio.h>
  2. #define Max 100
  3. void BubbleSort2(int *p,int len);
  4. int main()
  5. {
  6. int n, i;
  7. scanf("%d",&n);
  8. while(n--){
  9. int arr[Max];
  10. int len=0;
  11. int a;
  12. while(scanf("%d",&a)&&a){
  13. arr[len++]=a;
  14. }
  15. BubbleSort2(arr,len);
  16. for(i=0;i<len;i++){
  17. printf("%d ",arr[i]);
  18. }
  19. printf("\n");
  20. }
  21. return 0;
  22. }
  23. void BubbleSort2(int *p,int len){
  24. int temp;
  25. for(int i=0;i<len-1;i++){
  26. for(int j=0;j<len-i;j++){
  27. if(*(p+j)>*(p+j+1)){
  28. temp=*(p+j);
  29. *(p+j)=*(p+j+1);
  30. *(p+j+1)=temp;
  31. }
  32. }
  33. }
  34. }

成功输出

(难度4颗星版本)

输入

5 4 12 32 16 0

10 9 8 24 12 0

0

输出

4 5 12 16 32

8 9 10 12 24

  1. #include<stdio.h>
  2. #define Max 100
  3. void BubbleSort2(int *p,int len);
  4. int main()
  5. {
  6. int n,i;
  7. while(1){
  8. scanf("%d",&n);
  9. if(n==0){
  10. break;
  11. }else{
  12. int arr[Max];
  13. arr[0]=n;
  14. int len=1;
  15. int a;
  16. while(scanf("%d",&a)&&a){
  17. arr[len++]=a;
  18. }
  19. BubbleSort2(arr,len);
  20. for(i=0;i<len;i++){
  21. printf("%d ",arr[i]);
  22. }
  23. printf("\n");
  24. }
  25. }
  26. return 0;
  27. }
  28. void BubbleSort2(int *p,int len){
  29. int temp;
  30. for(int i=0;i<len-1;i++){
  31. for(int j=0;j<len-i;j++){
  32. if(*(p+j)>*(p+j+1)){
  33. temp=*(p+j);
  34. *(p+j)=*(p+j+1);
  35. *(p+j+1)=temp;
  36. }
  37. }
  38. }
  39. }

scanf返回值

scanf("%d%d",&a,&b);

  1.如果a和b都被成功读入,则scanf的返回值为2

  2.如果只有a被成功读入,那么返回值为1

  3.如果a和b都未被成功读入,那么返回值就为0

  4.如果遇到错误或遇到end of file,返回值为EOF

OJ每日一练试水第1天,聊聊输入输出问题的更多相关文章

  1. UITableView(自定义cell)试水心得

    初次试水自定义cell的UITableView 实现目标      最终实现结果   界面复原度:98% 未能完全复刻的地方:下半部分的tableview与头部的控件间距上的误差 原因:在做table ...

  2. POJ 2502 - Subway Dijkstra堆优化试水

    做这道题的动机就是想练习一下堆的应用,顺便补一下好久没看的图论算法. Dijkstra算法概述 //从0出发的单源最短路 dis[][] = {INF} ReadMap(dis); for i = 0 ...

  3. CSS3每日一练之内容处理-嵌套编号

    出处:http://www.w3cfuns.com/thread-5592229-1-17.html 1.大标题一   1.子标题   2.子标题   3.子标题2.大标题二   1.子标题   2. ...

  4. CSS3每日一练之选择器-结构性伪类选择器

    <!DOCTYPE HTML> <html> <head> <meta charset="gb2312"> <title> ...

  5. HTML5每日一练之progress标签的应用

    progress标签:从名字上来看,估计大家也能猜到这个标签是什么标签了,没错,他是一个进度条.在HTML5中我们终于可以不用模拟了. <progress id="W3Cfuns_pr ...

  6. HTML5每日一练之figure新标签的应用

    igure元素是一种元素的组合,可带有标题(可选).figure标签用来表示网页上一块独立的内容,将其从网页上移除后不会对网页上的其他内容产生影响.figure所表示的内容可以是图片.统计图或代码示例 ...

  7. HTML5每日一练之details展开收缩标签的应用

    details标签的出现,为我们带来了更好的用户体验,不必为这种收缩展开的效果再编写JS来实现.注:目前仅Chrome支持此标签. details有一个新增加的子标签——summary,当鼠标点击su ...

  8. 大众点评试水O2O新模式:实体店试穿,扫描二维码付款 现场取货

    在餐饮美食行业取得不错的成绩之后,大众点评将触角延伸到了线下的传统商铺,开始涉足线下商品的 O2O 团购.和传统的线上下单,线下消费的 O2O 模式不同.大众点评的 O2O 团购用户,可在店内试穿后通 ...

  9. 每日一小练——Eratosthenes 筛选法

    上得厅堂.下得厨房,写得代码.翻得围墙,欢迎来到睿不可挡的每日一小练! 题目:Eratosthenes筛选法 内容: 求质数是一个非常普遍的问题,通常不外乎用数去除.除到不尽时,给定的数就是质数.可是 ...

随机推荐

  1. 《python for data analysis》第九章,数据聚合与分组运算

    # -*- coding:utf-8 -*-# <python for data analysis>第九章# 数据聚合与分组运算import pandas as pdimport nump ...

  2. python基础教程001_安装python

    1.安装python Windows http://www.python.org下载python安装包 比如python-2.7.12.msi执行安装 安装完毕后,开始->搜索程序跟文件-> ...

  3. [NLP]非终结字符集&终结字符集

    参考:终结符和非终结符 终结字符集: 不能单独出现在推导式左边的符号, 不能够再继续推导. 非终结字符集: 不是终结字符集中的符号都为非终结字符集. 是可拆分元素. 例子: 文法如下: S->A ...

  4. c++ 创建线程以及参数传递

    //创建线程,传递参数 DWORD dwThreadID = ; HANDLE hThread = CreateThread(NULL, , MonitorThreadFunction, , & ...

  5. Int和String互转的方法

    Java 中int.String的类型转换   int -> String int i=12345;String s="";第一种方法:s=i+"";第二 ...

  6. [JAVA]字节数组流

    import java.io.*; public class ByteArrayStream { public static void main(String[] args) { byte[] dat ...

  7. ZoomIt: 非PPT演示必备辅助软件

    下载地址:https://docs.microsoft.com/zh-cn/sysinternals/downloads/zoomit 使用方法: 另一个免费的屏幕标注工具:Pointofix v1. ...

  8. 多个ROS工作空间常见的问题

    1. 在/home/user_name/.bashrc文件中写入多个工作空间的环境变量,这样会导致环境变量之间相互覆盖.最常见的问题就是找不到工作空间中某个launch文件.节点.rviz插件等. 解 ...

  9. C#使用Linq to Sqlite

    1.首先到Nuget命令行运行: Install-Package linq2db.SQLite 2.在项目下添加一个文件夹:DataModels,用以存放数据库相关的文件,显得规整 3.找到CopyM ...

  10. JS语法基础

    js声明 <!--在head标签中使用script标签进行js代码域声明--> <script type="text/javascript" language=& ...