20201022-成信大-C语言程序设计-20201学期《C语言程序设计B》C-trainingExercises12

本文精选了多个C语言编程练习题目,包括数组操作、递推数列计算、日期计算、成绩统计等,通过实例帮助读者理解和掌握C语言编程技巧。

20201022-成信大-C语言程序设计-20201学期《C语言程序设计B》C-trainingExercises13

P701

在这里插入图片描述


/*
  编写一程序P701.C实现以下功能
  从键盘读入10个数存放在一个数组中,要求用户由小到大输入。
    如果发现读入的某个数不是由小到大,则该数输入无效,继续读入后面的输入数据。
    再将这10个数依次输出到屏幕上,要求每个数的输出宽度为5、不足5位的在其左边补上空格、数与数之间使用逗号(,)分隔。
    然后输入一个数,要求找出该数是数组中第几个(序号从1开始计算)元素的值,如果该数不在数组中,则输出“Not Find!”。
  编程可用素材:
        printf("please input 10 numbers: ");
        printf("input the num to look for: ");
        printf("\nthe position of … is …\n"…);
        printf("\nNot Find!\n");
  程序的运行效果应类似地如图1、图2和图3所示,
    图1中的1 2 9 10 20 30 80 90 100 101和80、
    图2中的1 2 9 10 20 30 80 90 100 101和70、
    图3中的1 2 9 10 20 30 80 90 72 68 100 101和100是从键盘输入的内容。

please input 10 numbers: 1 2 9 10 20 30 80 90 100 101
    1,    2,    9,   10,   20,   30,   80,   90,  100,  101
input the num to look for: 80

the position of 80 is 7
图1 程序运行效果示例01

please input 10 numbers: 1 2 9 10 20 30 80 90 100 101
    1,    2,    9,   10,   20,   30,   80,   90,  100,  101
input the num to look for: 70

Not Find!
图2 程序运行效果示例02

please input 10 numbers: 1 2 9 10 20 30 80 90 72 68 100 101
    1,    2,    9,   10,   20,   30,   80,   90,  100,  101
input the num to look for: 100

the position of 100 is 9
图3 程序运行效果示例03 


*/

#include <stdio.h>
#define N 10

int main(void)
{
    int arr[N];
    int data;
    int i;
    int count;

    // 读入10个数存放在一个数组
    printf("please input 10 numbers: ");
    for (i = 0; i < N; i++)
    {
        scanf("%d", &arr[i]);
        // 某个数不是由小到大,则该数输入无效,继续读入后面的输入数据
        if(i >= 1)
        {
            // 在第2个数开始,都要和之前的数比较,如果小就丢弃重新输入
            while( arr[i] < arr[i-1])
            {
                scanf("%d", &arr[i]);
            }
        }
    }

    // 输出 输出宽度为5、不足5位的在其左边补上空格、数与数之间使用逗号(,)分隔
    for (i = 0; i < N - 1; i++)
    {
        printf("%5d,", arr[i]);
    }
    printf("%5d\n", arr[N - 1]);    

    // 输入一个数
    printf("\ninput the num to look for: ");
    scanf("%d", &data);

    // 要求找出该数是数组中第几个(序号从1开始计算)元素的值
    count = 0;
    for(i = 0; i < N; i++)
    {
        if (data == arr[i])
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值