Visual C++ 2008入门经典 第四章数组 字符串(练习题)

   //练习题一:
    /*int arraySize = 5; //数组的长度
	double* values = new double[arraySize]; //初始化一个values的指针,成员为五个
	double* temp = 0; //定义一个零时指针
	double inputValue = 0.0;
	int index = 0;
	for(;;)
	{
	    cout<<"请输入数值(按0退出):";
		cin>>inputValue;
		if(inputValue == 0.0){
		    break;
		}
		values[index] = inputValue;
		index++;
		if(index == arraySize)
		{
		    arraySize += 5;
			temp = new double[arraySize];
			for(int i=0; i<index; i++){
			    temp[i] = values[i];
			}
			delete[] values;
			values = temp;
			temp = 0;
		}
	}
	cout<<"index:"<<index<<endl;
	for(int i=0; i < index; i++)
	{
		cout<<i<<":"<<values[i]<<" ";
		inputValue += values[i];
		if(i % 5 == 0){
		   cout<<endl;
		}
	}
	cout<<"输入的总数为:"<<inputValue<<endl;*/


    //第二题
    /*int arraySize = 5; //数组的长度
	double* values = new double[arraySize]; //初始化一个values的指针,成员为五个
	double* temp = 0; //定义一个零时指针
	double inputValue = 0.0;
	int index = 0;
	for(;;)
	{
	    cout<<"请输入数值(按0退出):";
		cin>>inputValue;
		if(inputValue == 0.0){
		    break;
		}
		*(values+index) = inputValue;
		//values[index] = inputValue;
		index++;
		if(index == arraySize)
		{
		    arraySize += 5;
			temp = new double[arraySize];
			for(int i=0; i<index; i++){
			    //temp[i] = values[i];
				*(temp+i) = *(values+i);
			}
			delete[] values;
			values = temp;
			temp = 0;
		}
	}
	cout<<"index:"<<index<<endl;
	for(int i=0; i < index; i++)
	{
		cout<<i<<":"<<*(values+i)<<" ";
		inputValue += *(values+i);
		if((i+1) % 5 == 0){
		   cout<<endl;
		}
	}
	cout<<"输入的总数为:"<<inputValue<<endl;*/


    //第三题
    /*char ch[] = "Doctor Livingstone, I presume?";
	cout<<"ch:"<<ch<<endl;
	for(int i=0; i<strlen(ch); i++)
	{
		if(ch[i] >='a' && ch[i] <='z'){
		    ch[i] -= 32;
		}
	}
	cout<<"ch:"<<ch<<endl;*/

 
    //第四题
    /*Random^ gandomAr = gcnew Random;
	array<int>^ values = gcnew array<int>(gandomAr->Next(10,20));

	for(int i=0; i<values.Length; i++)
	{
	     values[i] = gandomAr->Next(100,1000);
	}

	for(int j=0; j<values.Length; j++)
	{
		Console::WriteLine("{0}",values[j]);
	}
	//声明一下bool型的数组
	array<bool>^ used = gcnew array<bool>(values->Length);
	Array::Clear(used, 0, values->Length); //将所有数组进行赋值操作,为false

	int minimum = Int32::MaxValue; //设置为最大可能值电流最小, 这句真还不错,Int32::MaxValue值吗?
	Console::WriteLine("Int32::MaxValue:{0}",Int32::MaxValue); //2147483647
	int minIndex = 0;

	for(int count = 0; count<values->Length; count++)
	{
		for(int i=0; i<values->Length; i++)
		{
			//首先条件是值并没有输出过的情况下
			//这是一个整的循环,是为了找出最小的值来
			if(!used[i] && minimum > values[i]) //看看这个mininum值到底是多少
			{
			     minimum = values[i];
				 minIndex = i;
				 //break; //刚才这里写了break所以不行的
			}
		}
		used[minIndex] = true;
		Console::Write("{0,10}", minimum);
		if((count+1) % 5 == 0){
		   Console::WriteLine();
		}
		minimum = Int32::MaxValue;
	}*/


    //第五题
    /*Random^ randomObj = gcnew Random;
	int value = randomObj->Next(100000,Int32::MaxValue-10000);
	Console::WriteLine("This is Values {0}",value);
	array<String^>^ digitWord ={L" Zero", L" one", L" two", L" three", L" four", L" five", L" six", L" seven", L" eight", L" nine"};
	//Console::WriteLine();
	String^ inWords = L"";
	while(value > 0)
	{
	    inWords = digitWord[value % 10] + inWords;
		value = value / 10;
	}
	Console::WriteLine("this is value:{0}", inWords);*/


    //第六题
    array<String^>^ values = {
               L"\"Madam I'm Adam.\"",
			   L"\"Don't cry for me, Marge and Tina.\"",
			   L"\"Lid off a daffodil.\"",
			   L"\"Red lost soldier.\"",
			   L"\"Cigar? Toss it in a can. It is so tragic.\""};
	/*for(int i=0; i<values->Length; i++)
	{
		Console::WriteLine(values[i]);
	}*/
	
	String^ letters;
	bool isPalindrome;
	for each(String^ phrase in values)
	{
	     letters = L"";
		 //提取字符的小字
		 for each(wchar_t ch in phrase)
		 {
			 if(Char::IsLetter(ch)){ //判断是否为什么东东
			     letters += Char::ToLower(ch); //然后变成小写,保存到letters
			 }
		 }
		 isPalindrome = true;
		 //分两半来循环
		 for(int i=0; i<letters->Length/2; i++)
		 {
			 //取得当前i, 在取得与i对应的后半段值
			 if(letters[i] != letters[letters->Length - i - 1])
			 {
			     isPalindrome = false;
				 break; //为什么要停止,这个得把一半对比完才行呢
				 //还是说只对比一个值吗?
				 //这里只对比一次两个值就成了
			 }
		 }
		 Console::WriteLine(L"\"" + phrase + L"\""
			  + (isPalindrome ? " is " : " is not")+L" a palindrome.");
	}

  

Visual C++编程宝典(十年典藏版) 明日科技 源代码 解压后287M 《Visual C++编程宝典(十年典藏版)》是一本集技能、范例、项目和应用为一体的学习手册,书中介绍了应用Visual C++ 6.0进行程序开发的各种技术、技巧。全书分4篇,共22章内容,其中,第1篇为技能学习篇,主要包括Visual C++集成开发环境,走进C++语言基础,运算符与表达式的应用,流程控制语句,函数的使用,面向对象程序设计,全面了解对话框,工具箱中的常用控件,高级控件,菜单、工具栏和状态栏,程序中的数据库操作,程序调试等内容;第2篇为范例演练篇,主要包括生活中的算法、工作中的小工具、编程中的好帮手、图像相关工具、小游戏开发等相关范例;第3篇为项目实战篇,主要包括通信新干线、使用指纹来考勤、上机课终的屏幕监控专家、让计算机听懂声音等4个小型项目;第4篇为商业系统篇,主要包括一个大型的商业项目,即企业内部通信系统。《Visual C++编程宝典(十年典藏版)》附有配套DVD光盘,光盘中提供了书中全部实例和项目的源代码,这些源代码全部经过精心调试,能够在Windows XP、Windows Server 2003以及Windows 7操作系统下编译和运行。《Visual C++编程宝典(十年典藏版)》适用于Visual C++的初学者、编程爱好者,同时也可以作为培训机构、大中专院校老师和学生的学习参考用书。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值