当前位置: 首页 > news >正文

【C语言day08】

int n=5; int a[n][n+2]

数组定义下角标不能为变量
注:C99标准中支持了使用变量

在这里插入图片描述

本题考查的是二维数组的元素访问,A选项是 正确的,X[i]就是第i行的数组名,数组名表示首元素的地址,X[i]表示第i行的第一个元素的地址,+j后就是第i行下标为j的元素的地址,整体解引用就是X[i][j],A正确。
B选项因为[]的优先级高于*,所以代码相当于**((x+i)+j),X+i+j后就越界了,并不代表X[i][j],所以错误。
C选项也明显不对,X是二维数组的数组名,数组名相当于第一行的地址,X+i+j,跳过了i+j行,就越界了,C错误。
D选项是标准的指针形式访问二位数组的一个元素。

编写一个函数,计算字符串中含有的不同字符的个数。
字符在 ASCII 码范围内( 0~127 ,包括 0 和 127 ),换行表示结束符,不算在字符里。
不在范围内的不作统计。多个相同的字符只计算一次
例如,对于字符串 abaca 而言,有 a、b、c 三种不同的字符,因此输出 3 。

题目来源

#include <stdio.h>int main() {//先去输入一行字符串char a[501] = {0};scanf("%s",a);//int数组作为标记数组int ax[501] = {0};int i = 0;int sum = 0;//先去将字符串中出现的字符对应标记为1for(i=0;a[i]!='\0';i++){ax[a[i]] = 1;}//最后去遍历一遍查找标记为1的个数for(i=0;a[i]!='\0';i++){if(ax[a[i]]){sum++;ax[a[i]] = 0;}}printf("%d",sum);return 0;
}
#include <stdio.h>
int main() {char tmp[501] = {0};while (~scanf("%s", tmp)) {char table[128] = {0}, *ptr = tmp;int count = 0;while (*ptr != '\0') {if (table[*ptr] !=1) {//判断字符ascii值作为下标的位置是否被标记过,是否是重复字符count++; //当前字符的位置没有被标记过表示没有出现过,则计数+1} table[*ptr++] = 1;//将字符ascii值作为下标的位置进行标记置1}printf("%d\n", count);} return 0;
}

多数元素
题目来源
给定一个大小为 n 的数组 nums ,返回其中的多数元素。
多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。
你可以假设数组是非空的,并且给定的数组总是存在多数元素。

一个数组中有一个数字出现次数大于 n/2 ,从第 0 个字符开始,假设它就是最多的那个数字,遇到相同的数字则
计数 +1 , 遇到不同的则计数 -1 ,其实就是互相消耗,等到计数为 0 的时候,表示本次互拼完毕,从下一个字符重
新开始互拼,但是归根结底出现次数大于 n/2 的这个数字数量更多,因此也是最后保留的字符。示例: "23335" 首先从字符 2 开始计数 1 ,遇到 3 ,不同则 -1 ,互拼消耗 重新从剩下的 "335" 开始的过程,这时
候保存的字符为 3 ,遇到 3 则计数 +1 , 遇到5则计数 -1 ,在计数不为 0 时,走到末尾保存的字符就是个数超过
n/2 的字符
int majorityElement(int* nums, int numsSize){int count = 1;int tmp = nums[0];for (int i = 1; i < numsSize; i++) {if (tmp == nums[i]){//与保存的字符相同则计数+1count++;} else {//与保存的字符不同则计数-1count--;//计数为0表示有可能保存的字符不是最多的字符,换下一个if (count == 0) tmp = nums[i + 1];}} return tmp;
}
http://www.lryc.cn/news/97856.html

相关文章:

  • 【并发编程】ThreadLocal
  • 如何提高自己的软件测试水平之bug定位
  • 发点实用的快捷键(mac
  • Android播放多媒体文件——播放音频
  • 存储重启后,ceph挂载信息没了,手动定位osd序号并挂载到对应磁盘操作流程、ceph查看不到osd信息处理方法
  • Linux学习之循环处理位置参数
  • NLP实战8:图解 Transformer笔记
  • Pytorch个人学习记录总结 玩俄罗斯方块の深度学习小项目
  • PuTTY连接服务器报错Connection refused
  • 11-3_Qt 5.9 C++开发指南_QSqlQuery的使用(QSqlQuery 是能执行任意 SQL 语句的类)
  • 神码ai火车头伪原创插件怎么用【php源码】
  • 13.Netty源码之Netty中的类与API
  • C# 如何检查数组列表中是否存在数组
  • AI课堂教学质量评估系统算法 yolov7
  • eventBus使用遇到的坑
  • ChatGPT应用|科大讯飞星火杯认知大模型场景创新赛开始报名了!
  • DM8 DSC备份还原
  • 【Docker--harbor私有仓库部署与管理】
  • 基于量子同态加密的安全多方凸包协议
  • MySQL案例——多表查询以及嵌套查询
  • AI 视频清晰化CodeFormer-Deepfacelab
  • TCP协议如何实现可靠传输
  • 万恶的Eclipse的使用
  • 文件上传--题目
  • 小程序创建
  • stable diffusion如何确保每张图的面部一致?
  • 保存Windows锁屏壁纸
  • 面向对象编程:深入理解内部类与抽象类的使用
  • linux安装oracle
  • 切面 基于Aspect注解自动切面, 省下注解判断逻辑 handler