题目有:

1、 将1~10这几个数字放入数组中。

2、从键盘中输入10个互不相同的整数,输出这10 个数,并求最小值。

3、

【1】输入三个数,从大到小输出;  ——逐一比较法

【2】输入5个整数,实现从小到大排序;——冒泡法

4、计算n的阶乘。

5、计算1!+2!+3!+......+10!

6、查找数组中某具体的数字:代码实现,在数组中找到数字6。   用“ 折半/二分查找法

7、编写代码实现,模拟用户登录情况,并且只能登陆三次。

8、编写代码,演示多个字符从两段移动,向中间汇聚。

正文

1、遍历:依次访问数组中的数据(利用for循环)

向数组中输入数据和输出数组元素时,将数组与循环结合起来,可以有效的处理大批量的数据,从而大大提高工作效率。

【1】将1~10这几个数字放入数组中。

#include<stdio.h>
int main()
{int i=0;int arr[10];for(i=1;i<=10;i++)   {arr[i]=i;    /*若从用户端输入,可用scanf("%d",&arr[i]);实现*/}for(i=1;i<=10;i++){printf("%d ",arr[i]);}return 0;
}

2、最值:定义一个变量min(或max)来储存最小值(或最大值),先将arr[0]赋值给min(或max),然后将剩下的数组元素逐个与min(或max)比较,若小于min,则将值赋给min,最后输出min的值。

【2】从键盘中输入10个互不相同的整数,输出这10 个数,并求最小值。

#include<stdio.h>
int main()
{int i=0;int min=0; int arr[10];for(i=0;i<10;i++){scanf("%d",&arr[i]);   //从键盘输入10个整数}for(i=0;i<10;i++){printf("%d ",arr[i]);   //输出这10个数}min=arr[0];             //数组引用,给min变量赋初值for(i=1;i<10;i++)    //循环9次,因下面的if语句需要多次执行{if(arr[0]>arr[i]){min=arr[i];    //数组引用,将较小的值赋给min}}printf("\n最小值是:%d\n",min);   //输出最小值
return 0;
}

3、排序

【1】输入三个数,从大到小输出;  ——逐一比较法

【2】输入5个整数,实现从小到大排序;——冒泡法

当比较的数的个数较少时,可以利用if语句逐一比较,但是当个数较多时,此法就过于麻烦和低效,因此,此时建议采用数组,用“冒泡法”解决。

#include<stdio.h>
int main()
{int a,b,c,t;scanf("%d %d %d",&a,&b,&c);if(a<b)      //算法实现,a中放最大值,b次之,c中放最小值{t=a;a=b;b=t;}  if(b<c){t=b;b=c;c=t;}    if(a<c){t=a;a=c;c=t;}  printf("%d %d %d\n",a,b,c);
return 0;
}

冒泡法:

#include<stdio.h>
int main(void)
{int num[11];int i,j;int temp;for(i=0;i<10;i++)scanf("%d",&num[i]);for(i=0;i<10-1;i++)    //这里只需进行九次循环,第十次的数已经是最小值,不需要进行排序 for(j=0;j<10-1-i;j++)  //这里只需进行n-i-1次排序,因为前i个数已经排好了序 if(num[j]>num[j+1]){temp=num[j];num[j]=num[j+1];num[j+1]=temp;}for(i=0;i<10;i++)printf("%d ",num[i]);return 0;
}

下面我们来详细分析一下代码:
for(i=0;i<10-1;i++)
第一个循环 要循环n-1次 ?因为每次循环都会把当前循环中的最大一位放到右端,在第n-1次放完后,数组最左端的数字已经是最小的,不需要n次循环。
for(j=0;j<10-i-1;j++)
第二个循环 循环n-i-1次,为什么是n-i-1? 同上,右端经过一次比较就会替换成最大值,每次循环放置一个当前循环的最大值,所以循环完全不必要进行10次,减去已经放好的值的数量(执行一次放一个,执行i次就是i个)可以提高程序运行的速度。

【4】计算n的阶乘。

#include<stdio.h>
int main()
{int i,n,ret;ret=1;printf("请输入n的值:");scanf("%d",&n);for(i=1;i<=n;i++){ret=ret*i;}
printf("ret=%d\n",ret);
return 0;
}

【5】计算1!+2!+3!+......+10!

#include<stdio.h>
int main()
{int i=0;int ret=1;int sum=0;for(i=1;i<=10,i++){ret=ret*i;sum=sum+ret;}
printf("和为:%d\n",sum);
return 0;
}

【6】查找数组中某具体的数字

代码实现,在数组中找到数字6.

#include<stdio.h>
int main()
{int i=0;int arr[]={1,2,3,4,5,6,7,8,9,10};int k=6;   //写一个代码,在arr中找到6sz=sizeof(arr)/sizeof(arr[0]);      //数组元素的个数for(i=0;i<sz;i++)   {if(k==arr[i])                   //数组的引用printf("找到了,下标是:%d\n",i);break;                      //易漏,若不写break,则找到了也会继续执行下面的代码}  if(i==sz)printf("没找到\n");
return 0;
}

用“ 折半/二分查找法 ”,执行效率更高,如下:

#include<stdio.h>
int main()
{ int arr[]={1,2,3,4,5,6,7,8,9,10};int k=7;int sz=sizeof(arr)/sizeof(arr[0]);int left=0;   //坐下标int right=(sz-1);  //右下标while(left<=right){int mid=(left+right)/2;  //每次循环都要计算中间坐标,然后与要找到数对比if(arr[mid]>k)          //在循环过程中可能出现的3种互斥条件的情况,用if-else-if 语句{right=mid-1;}else if(arr[mid]<k){left=mid+1;}elseprintf("找到了,下标是:%d\n",mid);break;  //中间坐标对应的数组元素刚好是7}if(left>right)printf("找不到\n");return 0;
}

【7】编写代码实现,模拟用户登录情况,并且只能登陆三次。

#include<stdio.h>
#include<string.h>
int main(){char password[]="123456";int i;char input[10];for(i=0;i<3;i++) {printf("请输入密码:\n");scanf("%s",input);  //注意别加&if(strcmp(input,password) == 0) break;else if (i<3) printf("密码错误,重新输入!\n");} if(i<3) {printf("登陆成功,进入程序!\n");} else printf("密码错误,退出程序!\n");return 0;
}

分析:  ==不能用来比较两个字符串是否相等,应使用一个库函数 strcmp()

【8】编写代码,演示多个字符从两段移动,向中间汇聚。

#include<stdio.h>
#include<string.h>
#include<windows.h>
#include<stdlib.h>
int main(){char arr1[]="welcome to bit !!!!!!"; char arr2[]="####### ## ### ######";int left=0;// 此法也对 int right=sizeof(arr1)/sizeof(arr[0])-2;  int right=strlen(arr)-1;//用strlen 求字符串长度,遇'\0'停止,不含'\0'while(left<=right){arr2[left]=arr1[left];arr2[right]=arr1[right];Sleep(1000);    //休息1000毫秒,即一秒system("cls");  //清空屏幕; system(); ——执行系统命令的一个函数left++;right--;}printf("%s\n",arr2);    /*最后打印一次字符串,不然会因system("cls");而导致屏幕不会出现字符串*/return 0;
} 

C语言题目(数组)1相关推荐

  1. C语言求数组中的最大值

    该博文为原创文章,未经博主同意不得转载,如同意转载请注明博文出处 本文章博客地址:https://cplusplus.blog.csdn.net/article/details/105163865 C ...

  2. c语言应用报告,C语言:数组的应用实验报告.doc

    C语言:数组的应用实验报告.doc -1- 课程名称课程名称结构化程序设计与结构化程序设计与 C C 语言语言 开课实验室开课实验室 年年 月月 日日 年级年级.专业.班.专业.班 学号学号 姓名姓名 ...

  3. 7-301 sdut- C语言实验-数组逆序(数组移位)

    7-301 sdut- C语言实验-数组逆序(数组移位) 分数 16 全屏浏览题目 切换布局 作者 马新娟 单位 山东理工大学 有n个整数,使其最后m个数变成最前面的m个数,其他各数顺序向后移m(m ...

  4. 【面试】嵌入式C语言题目整理

    [面试]嵌入式C语言题目整理 描述内存四区. 内存四区分为:代码区.静态区.堆区.栈区 代码区就是用来存放代码的. 静态区用来存放全局变量.静态变量.常量(字符串常量.const修饰的全局变量). 堆 ...

  5. c语言编程数组对角线之和,C语言实现3*3数组对角线之和示例

    C语言实现3*3数组对角线之和示例 我就废话不多说了,直接上代码吧! #define _CRT_SECURE_NO_WARNINGS 1 #include #include int SUM(char ...

  6. C语言题目:左旋字符串.

    C语言题目:左旋字符串 两种方法: 方法一原理:把第一个元素放存放到某个变量,让除了第一个的元素全部向前移动一个索引,再把变量放到数组最后一个元素 实现: 方法二原理: 先让要左旋的那几个字符逆序,再 ...

  7. 100例C语言经典编程题 | 浙大版C语言题目集第三版,助力你C语言从入门到精通

    获取每道题详细解答请在公众号[C you again]"C语言题目集"栏目查看. 下载pdf版本请在公众号[C you again]回复"c-pdf"自行获取. ...

  8. c语言不用数组十进制转二进制,C语言输入十进制整数,不用数组将其转化为二进制数...

    1楼:吴诗妍好 c语言输入一个10进制整数不用数据,将它转化为爱情制度,你这个好像有点复杂呀,你应该问一下你的同事和这老师吧 c语言,使用数组,编写一个十进制正整数转换为二进制数的转换工具 5 2楼: ...

  9. 百度作业帮c语言查题目,c语言题目看程序写结果a=5,b=4,c=3,d:d=(abc)

    请大家看一下下面的C语言程序哪里出错了,题目是求一元二次方程的解. 您的程序一共有两个地方有问题,第一是读取输入的时候,a,b,c定义成double,所以读入的时候不能用%d,而应该:scanf(&q ...

  10. c语言 字符串 timu,这个C语言题目究竟谁该背锅?竟然是它。。。

    原标题:这个C语言题目究竟谁该背锅?竟然是它... 问题来源 各位,今天给大家带来一道有问题的C语言题目,初学者犯这种错误的可能性不小,大家来看一下这应该是谁的锅呢?问题代码如下: 1 代码分析 代码 ...

最新文章

  1. 大型网站的灵魂——性能
  2. Mybatis执行select语句无匹配对象时返回集为Empty还是null
  3. 浅谈疫情下的就业形势
  4. 电影特效用到什么计算机知识,后期影视特效处理知识普及
  5. C# 模拟Windows键盘事件
  6. android自定义金额输入键盘_Android 自定义控件 - 仿支付宝数字键盘
  7. 红外遥控协议-NEC协议
  8. 7-138 打印沙漏 (20 分)
  9. 6G 研发启动,普通人如何借势加薪?
  10. Java 建模:子整体软件开发
  11. 华为/华三:OSPF多区域配置
  12. python对landsat8数据进行辐射校正
  13. 路由交换的一些常见知识点总结
  14. python中复选框取消修改_Python tkinter复选框双重检查/取消选中(Python tkinter Checkboxes double check/uncheck)...
  15. windows与mac字体设置
  16. Acer 笔记本双硬盘安装Ubuntu18.04.4+Win10双系统
  17. PDM,读《长尾理论》
  18. Google APAC 2016 University Graduates Test Practice Round APAC test
  19. MySQL中show命令用法大全
  20. java date类 时区_Java Date 与时区

热门文章

  1. C#使用公共语言拓展(CLE)调用Python3(使用TensorFlow训练的模型)
  2. echarts柱状图多组数据配置
  3. 【Android】自定义View、画布Canvas与画笔Paint
  4. pacman yaourt使用
  5. 平台卡卷API文档分享
  6. php邮件群发系统日发5000,最新qq邮件群发日发10000封邮件
  7. 新零售SaaS架构:多租户系统架构设计
  8. 侵权和违约的区别是哪些
  9. 软件测试基础知识 - 单元测试、集成测试、系统测试、回归测试、验收测试这几步中最重要的是哪一步
  10. 【数据结构-源码分析】HashMap源码分析(超级详细)