栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 软件开发 > 后端开发 > C/C++/C#

C++回顾(数组+指针)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++回顾(数组+指针)

1.数组

回顾一维数组与二维数组的相关知识,练习了几道题目。

1.1三阶矩阵转置

#define N 10
#include 
using namespace std;
int main()
{
	int a[N][N],i,j,t;
	for(i = 0;i < 3;i++)
	    for(j = 0;j < 3;j++)
	        cin >> a[i][j];
	for(i = 0;i < 3;i++)
	    for(j = 0;j < i;j++){
	        t = a[i][j];
	        a[i][j] = a[j][i];
	        a[j][i] = t;
        }
    for(i = 0;i < 3;i++){
	    for(j = 0;j < 3;j++)
            cout << a[i][j] <<"  ";
        cout << endl;
    } 
	system("pause");
	return 0;
}

1.2将一个包含10个整数的数组中的最大最小元素进行交换,并输出交换后的内容。
10个整数为随机产生的0~100之间的数。

(若最大最小元素不唯一,则交换任意两个都算正确,即可以不用特殊考虑不唯一的情况)

#include 
using namespace std;
#include 
int main(){
	const int N = 10;
	srand(time(NULL));
	int a[N], i, j, k, min1, max1, min = 100, max = 0;
	for(i = 0; i < 10; i++){
		a[i] = rand() % 100;
		cout << a[i] << "  ";
    }
    cout << endl; 
    for(j = 0; j < 10; j++){
    	if(a[j] < min){
		    min = a[j];
		    min1 = j;
		}
	}
	for(j = 0; j < 10; j++){
    	if(a[j] > max){
    		max = a[j];
    		max1 = j;
		}
    }
	int t = a[min1];
	a[min1] = a[max1];
	a[max1] = t;
	for(k = 0; k < 10; k++)
	    cout << a[k] << "  ";
	return 0;
}

1.3编一个程序,输入一个字符串,将其倒序存放后输出。
例如,假设原数组a的内容为“VISUAL C++PROGRAM”,倒序后数组a中的内容为“MAGORP++C LASUIV”。

要求:不能借助另外一个数组实现倒序存放。

#define N 100
#include 
using namespace std;
int main()
{
	int i = 0;
	char a[N];
	gets(a);
	while(1){
	    if(a[i] == '')
	        break;
	    else
	        i++;
	}
	for(i = i - 1; i >= 0; i--)
	    cout << a[i];
	return 0;
}

方法二:利用指针实现倒序存放与输出

#define N 100
#include 
using namespace std;
#include 
int main ()
{
	char s[N];
	gets(s);
	char *p = s,*q = s + strlen(s) - 1;
    while(p < q)
    {
        char t = *p;
        *p = *q;
        *q = t;
        p++,q--;
    }
    cout<< s << endl;
    return 0;
}
2.指针

2.1编写程序:利用指针变量在存储于一个长度不超过100的字符数组中的字符串里查找汉字,
并将该字符串中的所有汉字删除。(提示:汉字GBK编码中,一个汉字占两个字节,且最高位为(代表符号位为负),即汉字的编码值小于0)

#include 
using namespace std;
#define N 100
#include 
int main()
{
	char a[N], *p = a, *q;
	int i = 0, j = 0;
	cout << "请输入字符串" << endl;
	gets(a);
	while(*(p+i) != '')
	{
	   if(*(p+i) < 0)
	   { 
	       cout << "查找到汉字" << endl;
	       q = p+i;
	   	   j = i;
	   	   while(*q++ != ''){
			  a[j] = a[j+2];
			  j++;
		   }
	   }
	   else
	   	   i++;
    }
    cout << p << endl;
    system("pause");
    return 0;
}  

2.2利用字符指针将输入的一个字符串中的大小写字母相互转换,并输出转换后的字符串的内容。如,假设输入的字符串的内容为“How are you”,则转换后的内容为“hOW ARE YOU”

#include 
using namespace std;
#define N 100
int main ()
{
	char a[N],*p = a;
    cout<<"请输入字符串"<= 'a' && *p <= 'z')
    	*p -= 32;
    	else if (*p >= 'A' && *p <= 'Z')
    	*p += 32;
    	p++;
	}
	cout << a << endl;
	system("pause");
	return 0;
}
3.总结

虽然已经在学校简要学习过C++,但是回顾起来依旧存在困难。一是存在一定时间间隔,致使知识遗忘,二是学校学习相对注重理论而缺乏实践操作,使得有些问题有些摸不着头脑,三是逻辑不顺,遗漏关键点致使代码反复修改,对一些题型缺乏系统思考。在debug的过程中对耐心是一种考验,尤其是解决这一个bug又出现下一个bug,有时真的会“心态炸了”。不过在痛苦的过程中也可以体会到一次次解决问题的快乐,算是坚持下去的动力吧,希望明天继续加油!

4.明日计划

学习Linux的常见指令

转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/1037667.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号