• 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.");
    	}
    

      

  • 相关阅读:
    Kettle学习(2)
    kettle学习(1)
    Quartz在Spring中的使用
    JVM垃圾收集简介
    快速排序

    20190827最新论文
    GNN
    Multimodal Machine Learning
    Wasserstein距离 及两多元高斯分布间的W距离
  • 原文地址:https://www.cnblogs.com/xiangxiaodong/p/2740384.html
Copyright © 2020-2023  润新知