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;
}
相关推荐
木禾ali0th2 分钟前
告别大模型“裸奔”:开源项目 ClawVault 架构与核心能力解析
算法·安全
青槿吖2 分钟前
SpringMVC通关秘籍(下):日期转换器、拦截器与文件上传的奇幻冒险
java·开发语言·数据库·sql·mybatis·状态模式
Storynone2 分钟前
【Day28】LeetCode:509. 斐波那契数,70. 爬楼梯,746. 使用最小花费爬楼梯
python·算法·leetcode
wangjialelele2 分钟前
C++11、C++14、C++17、C++20新特性解析(一)
linux·c语言·开发语言·c++·c++20·visual studio
weixin_456321648 分钟前
Java架构设计:Redis AOF持久化深度解析(原理+实战+避坑)
java·开发语言·redis
阿蒙Amon12 分钟前
C#常用类库-详解YamlDotNet
开发语言·c#
大傻^20 分钟前
SpringAI2.0 Null Safety 实战:JSpecify 注解体系与 Kotlin 互操作
android·开发语言·人工智能·kotlin·springai
DeepModel22 分钟前
【统计检验】方差分析(ANOVA)
算法
sz-lcw22 分钟前
HOG特征向量计算方法
人工智能·python·算法
闻缺陷则喜何志丹29 分钟前
【博弈论】P8144 [JRKSJ R4] BBWWBB|普及+
c++·算法·洛谷·博弈论