sse哈工大C语言编程练习22

2026年2月5日

收获:

1.当输入整数后,之后的其他类型数据不能正常输入,用while(getchar()!='\n');来跳过多余字符。

题目:

1、Q5637.(语言: C)改错题:编程分别输入int型,char型和float型数据,要求每输入一项就显示数据类型和数据值。

输出格式要求:

"please input an integer:"

"integer %d\n"

"please input a character:"

"character %c\n"

"please input a float number:"

"float %f\n"

//请大家在CB中改错

复制代码
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int a;
    char b;
    float c;

    printf("please input an integer:\n");
    scanf("%d,a");		//缺取地址符,引号位置不对
    printf("Integer %d:\n, a);		//用小写,且缺少双引号
    //while(getchar()!='\n');  //跳过多余字符,使后续输入正常
    printf(Please input a character:");
    scanf(%c,b");		
    printf("Character %c\n,b);
    printf(Please input a float number:\n");
    scanf("%f",c);
    printf("Float %f:\n",c);
    return 0;
}

改后运行成功代码:

c 复制代码
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int a;
    char b;
    float c;

    printf("please input an integer:");
    scanf("%d",&a);
    printf("integer %d\n", a);
    while(getchar()!='\n');
    printf("please input a character:");
    scanf("%c",&b);
    printf("character %c\n",b);
    printf("please input a float number:");
    scanf("%f",&c);
    printf("float %f\n",c);
    return 0;
}

2、Q220.(语言: C)用if-else语句编程根据输入的百分制成绩score,转换成相应的五分制成绩grade后输出。已知转换标准为:

0-59 E

60-69 D

70-79 C

80-89 B

90-100 A

**输入格式要求:"%d" 提示信息:"Please enter score:"

**输出格式要求:"Input error!\n" "%d--A\n"

程序运行示例1如下:

Please enter score:15

15--E

程序运行示例2如下:

Please enter score:85

85--B

c 复制代码
#include <stdio.h>
int main()
{
    int score;
    printf("Please enter score:");
    scanf("%d",&score);
    if(score>100||score<0){
        printf("Input error!\n");
    }else if(score<60){
        printf("%d--E\n",score);
    }else if(score<70){
        printf("%d--D\n",score);
    }else if(score<80){
        printf("%d--C\n",score);
    }else if(score<90){
        printf("%d--B\n",score);
    }else{
        printf("%d--A\n",score);
    }
    return 0;
}

3、Q6394.(语言: C)爱因斯坦的数学题。爱因斯坦出了一道这样的数学题。有一条长阶梯,若每步跨2阶,则最后剩1阶,若每步跨3阶,则最后剩2阶,若每步跨5阶,则最后剩4阶,若每步跨6阶,则最后剩5阶,若每步跨7阶,最后才正好一阶不剩。请问,这条阶梯共多少阶?

输出格式要求:"x = %d\n"
程序运行示例:
x=
**

c 复制代码
#include <stdio.h>
int main()
{
    int n=0,flag=1;
    while(flag){
        n++;
        if(n%2==1&&n%3==2&&n%5==4&&n%6==5&&n%7==0) flag=0;
    }
    printf("x = %d\n",n);
    return 0;
}

4、Q2128.(语言: C)用循环编程计算sum=12+3 4+56+78+...+ 99*100的值。

要求:

**输入格式:无任何信息提示;

**输出格式:"sum=%ld\n"

c 复制代码
#include <stdio.h>
int main()
{
    long int sum=0;
    for(int i=1;i<100;i+=2){
        sum+=i*(i+1);
    }
    printf("sum=%ld\n",sum);
    return 0;
}

5、Q473.(语言: C)编程输出如下菜单界面(具体的输出则以下面提示中要求的输出格式为准):======= 大学信息管理系统 =======


  1. 办公室管理 5. 财务管理
  2. 教务管理 6. 图书管理
  3. 科研管理 7. 设备管理
  4. 人事管理 8. 后勤管理
  5. 退出系统

请您在上述功能中选择(0------8):

提示:输出如下格式"======= 大学信息管理系统 ======= \n""------------------------------\n""1. 办公室管理 5. 财务管理 \n""2. 教务管理 6. 图书管理 \n""3. 科研管理 7. 设备管理 \n""4. 人事管理 8. 后勤管理 \n""0. 退出系统\n""------------------------------\n""请您在上述功能中选择(0------8):\n"

c 复制代码
#include <stdio.h>
int main()
{
    printf("=======大学信息管理系统======= \n");
    printf("------------------------------\n");
    printf("1. 办公室管理     5. 财务管理 \n");
    printf("2. 教务管理       6. 图书管理 \n");
    printf("3. 科研管理       7. 设备管理 \n");
    printf("4. 人事管理       8. 后勤管理 \n");
    printf("0. 退出系统\n");
    printf("------------------------------\n");
    printf("请您在上述功能中选择(0------8):\n");
    return 0;
}
相关推荐
辞旧 lekkk11 小时前
【Qt】信号和槽
linux·开发语言·数据库·qt·学习·mysql·萌新
放羊郎11 小时前
基于ORB-SLAM2算法的优化工作
人工智能·算法·计算机视觉
mask哥11 小时前
力扣算法java实现汇总整理(上)
java·算法·leetcode
2zcode11 小时前
运动模糊图像复原的MATLAB仿真与优化
开发语言·matlab
袁雅倩199711 小时前
当吸尘器、筋膜枪都用上Type-C,供电方案该怎么选?浅谈PD取电芯片ECP5702的应用
c语言·开发语言·支持向量机·动态规划·推荐算法·最小二乘法·图搜索算法
如果'\'真能转义说12 小时前
OOXML 文档格式剖析:哈希、ZIP结构与识别
xml·算法·c#·哈希算法
Aaswk12 小时前
Java Lambda 表达式与流处理
java·开发语言·python
万邦科技Lafite13 小时前
京东item_get接口实战案例:实时商品价格监控全流程解析
java·开发语言·数据库·python·开放api·淘宝开放平台
Cyber4K14 小时前
【Python专项】进阶语法-系统资源监控与数据采集(1)
开发语言·python·php
梦梦代码精14 小时前
BuildingAI 上部署自定义工作流智能体:5 个实用技巧
大数据·人工智能·算法·开源软件