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;
}
相关推荐
CoovallyAIHub1 小时前
从春晚机器人到零样本革命:YOLO26-Pose姿态估计实战指南
深度学习·算法·计算机视觉
CoovallyAIHub1 小时前
Le-DETR:省80%预训练数据,这个实时检测Transformer刷新SOTA|Georgia Tech & 北交大
深度学习·算法·计算机视觉
CoovallyAIHub2 小时前
强化学习凭什么比监督学习更聪明?RL的“聪明”并非来自算法,而是因为它学会了“挑食”
深度学习·算法·计算机视觉
CoovallyAIHub2 小时前
YOLO-IOD深度解析:打破实时增量目标检测的三重知识冲突
深度学习·算法·计算机视觉
祈安_2 小时前
C语言内存函数
c语言·后端
NAGNIP13 小时前
轻松搞懂全连接神经网络结构!
人工智能·算法·面试
NAGNIP13 小时前
一文搞懂激活函数!
算法·面试
董董灿是个攻城狮13 小时前
AI 视觉连载7:传统 CV 之高斯滤波实战
算法
爱理财的程序媛19 小时前
openclaw 盯盘实践
算法