一、PTA实验作业

题目1:最佳情侣身高

1.实验代码

	int      N, i;
float height;
char sex;
printf("输入用户个数:\n");
scanf("%d", &N); if(N>10||N<=0)
{
printf("输入错误!\n");
}
else
{
for(i=1; i<=N; i++)
{
scanf("\n%c%f",&sex,&height);
switch(sex)
{
case 'F':printf("%.2f\n", height*1.09);break;
case 'M':printf("%.2f\n", height/1.09);break;
default: printf("输入错误!\n");break;
}
} }

2.设计思路

  • 1、定义2个整型变量N和i,一个浮点型变量height,一个字符型变量sex,N表示前来查询用户数、i计数、height身高、sex性别;
  • 2、输入N,初始化i=1;
  • 3、若N>10或N<=0,提示"输入错误!"并结束程序,否则继续下一步骤;
  • 4、i++;
  • 5、输入sex、height;
  • 6、若sex=‘F’,printf("%.2f\n", height*1.09),结束程序;若sex= 'M',printf("%.2f\n", height/1.09),结束程序;否则提示"输入错误!",结束程序;
  • 7、若 i<=N,返回步骤4,否则结束程序

3.本题调试过程碰到问题及解决办法

  • 问题1:结果错误

解决方法:调试程序,请教同学。开始不理解为什么会出现这样的错误,后来请教舍友,舍友提出可能是因为scanf()函数把结束语句的回车当成字符处理了。猜测中我们使用百度百科,发现确实会有这种可能,然后按照百度的方法,在程序中加入fflush(stdin)函数后,发现第一个输出结果仍有问题,但后面的输出全部正确了。调试发现第一次循环时sex的值仍是‘\n’,大家都不知道为什么会这样了。后来我凭着程序员的直觉(因为之前老师说过直接在scanf语句中写上符号的话,在运行输入时也要输进符号,如果是后面的scanf语句把前一个结束语句的回车当成字符处理了的话,那我先在scanf里面给它一个‘\n’,结果会不会不一样)

C语言--单层循环结构的更多相关文章

  1. C语言第三次博客作业---单层循环结构

    一.PTA实验作业 题目1 1.实验代码 int N,i; //N为用户数,i记录循环变量 double height; //height放身高 char sex; //sex放性别F为女,M为男 s ...

  2. C语言第三次作业---单层循环结构

    一.PTA实验作业 题目一.最佳情侣身高差 1.实验代码 int N;//存放输入的人数 char sex; double hight1,hight2;//分别存放输入的身高和输出的身高 scanf( ...

  3. 【C语言】-循环结构-for语句

    for语句: for (表达式1;表达式2;表达式3) { 循环语句 } 表达式1 给循环变量赋初值 表达式2 为循环条件 表达式3 用来修改循环变量的值,称为循环步长. for语句的执行流程: 例: ...

  4. C语言之循环结构

    程序结构: 顺序结构 条件结构(分支结构) if结构,if-else结构 ,多重if分支结构,switch结构 循环结构:做重复的事情 while循环,do..while循环和for循环. 写循环结构 ...

  5. C语言基础-循环结构

    循环结构while while循环-图例 while循环-格式 while ( 条件 ) { 语句1; 语句2; .... } 如果条件成立,就会执行循环体中的语句(“循环体”就是while后面大括号 ...

  6. 【C语言】-循环结构-while语句

    while语句: while循环可实现"当型"循环,即当条件成立时,执行循环体.适合无法确定循环执行次数的情况. while (表达式) { 循环语句 } 注意: 表达式为循环控制 ...

  7. 【学习笔记】【C语言】循环结构-for

    1.使用: for (语句1; 条件; 语句2) {     循环体 }   语句1:初始化语句 语句2:增量语句(执行完循环体后再执行的语句)   1.for一开始就会执行一次语句1(整个for循环 ...

  8. 【学习笔记】【C语言】循环结构-while

    1. 简单使用 while ( 条件 ) {     语句1;     语句2;     .... } 如果条件成立,就会执行循环体中的语句(“循环体”就是while后面大括号{}中的内容).然后再次 ...

  9. C语言之循环结构 for(二)

    一 for循环的嵌套使用 for循环的嵌套语法: for(int i =0;i<10;i++){ for(int j=0;j<5;j++){ } } 一般用来打印平面,或者控制平面,或者说 ...

随机推荐

  1. 002_89C52_Proteus_DAC0832_输出50HZ,正弦波,三角波,矩形波,锯齿波

    (一)非常感谢:89C51与ad0832 输出正弦波,三角波,矩形波,锯齿波 (二)在上面的情况下进行程序的修改,实现50HZ的输出 (三)电路图 (三)输出方波 (四)输出锯齿波 (五)输出三角波 ...

  2. redis系列(三):python操作redis

    1.安装包 pip install redis 2.使用 # -*- coding: utf-8 -*- # @Time : 18-12-7 下午4:33 # @Author : Felix Wang ...

  3. 第一次Java测试及感触(2018.9.20)

    在本周周四进行了java测试,有一点感触,测试的题目是用Java实现一个ATM机的管理系统.之前老师提前给我们样卷,结果考试的时候换了题型,瞬间脑子空白,一时不知道怎么下手,因为暑假虽然涉猎了java ...

  4. mysql8.0.17gtid方式实现主从同步

    数据库的安装: [root@node1 8.0.17]# rpm -ivh mysql-community-common-8.0.17-1.el7.x86_64.rpm 警告:mysql-commun ...

  5. Python 中操作 MySQL

    引入模块 在py文件中引入pymysql模块 from pymysql import * Connection 对象 用于建立与数据库的连接 创建对象:调用connect()方法 conn=conne ...

  6. cxf报错 Cannot find any registered HttpDestinationFactory from the Bus.

    错误信息:Cannot find any registered HttpDestinationFactory from the Bus. 报错主要是因为缺少jetty依赖 一般添加如下依赖即可 < ...

  7. unigui图形验证码

    unigui图形验证码 procedure TMainForm.UniButton1Click(Sender: TObject); var url: SockString; serial: TynSe ...

  8. Mysql表的横向拆分与纵向拆分

    表的拆分分为横向拆分(记录的拆分)和纵向拆分(字段的拆分).拆分表的目的:提高查询速度. 1.横向拆分 我们从一个案例去解释,情景是这样的:某某博客,有50W的博客量,有2w的用户,发现随着用户和博客 ...

  9. 设计模式----外观(facade)模式

    外观(facade)模式外观模式(Facade),为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用.uml图

  10. 在IIS7、IIS7.5中应用程序池最优配置方案

    先介绍几个简单的设置 应用程序池 > 高级设置 1.基本设置 队列长度: 65535 启动32位应用程序 否则安装一些32的组建或32位的php都会出错 托管管道模式 Classsic 2.高级 ...