Teste de Programação e Algoritmo (3) Semana 07

001: SumArray simples

Preencha o modelo PrintArray, para que a saída do programa seja: TomJackMaryJohn 10 Não escreva a função SumArray

#include <iostream> 
#include <string> 
usando o namespace std; 
modelo <classe T> 
T SumArray (
// Adicione seu código aqui
} 
int main () { 
	string array [4] = {"Tom", "Jack", "Maria", "João"}; 
	cout << SumArray (matriz, matriz + 4) << endl; 
	int a [4] = {1, 2, 3, 4}; // 提示: 1 + 2 + 3 + 4 = 10 
	cout << SumArray (a, a + 4) << endl; 
	retornar 0; 
}
Entrada
Nenhuma
Saída
TomJackMaryJohn
10
Entrada de amostra
Nenhuma
Saída de amostra
TomJackMaryJohn 
10
#include <iostream> 
#include < string >
 usando o  namespace std; 
modelo < classe T> 
T SumArray (T * _start, T * _end) 
{ 
// 在 此处 补充 你 的 代码 
   T sum = * _start;
   while (++ _ start < _end) 
   { 
       sum = sum + * _start; 
   } 
    soma de retorno ; 
} 
int main () 
{ 
    string array [ 4 ] = { " Tom " , " Jack " ," Maria " , " João " }; 
    cout << SumArray (matriz, matriz + 4 ) << endl;
    int a [ 4 ] = { 1 , 2 , 3 , 4 }; // 提示: 1 + 2 + 3 + 4 = 10 
    cout << SumArray (a, a + 4 ) << endl;
    retornar  0 ; 
}

 

 
   

002: foreach simples

Escreva o modelo MyForeach para produzir o programa conforme necessário

#include <iostream> 
#include <string> 
usando o namespace std;
// Adicione seu código aqui
Impressão nula (string s) 
{ 
	cout << s; 
} 
void Inc (int & n) 
{ 
	++ n; 
} 
Matriz de cadeia [100]; 
int a [100]; 
int main () { 
	int m, n; 
	while (cin >> m >> n) { 
		para (int i = 0; i <m; ++ i) 
			cin >> array [i]; 
		para (int j = 0; j <n; ++ j) 
			cin >> a [j]; 
		MyForeach (matriz, matriz + m, Imprimir);		 
		cout << endl; 
		MyForeach (a, a + n, Inc);		 
		for (int i = 0; i <n; ++ i) 
			cout << a [i] << ","; 
		cout << endl; 
	} 
	retornar 0; 
}

Insira vários conjuntos de dados.A

primeira linha de cada conjunto de dados é de dois números inteiros me não mais que 50. A

segunda linha é m seqüências de caracteres sem espaços. A
terceira linha é n números inteiros. A saída é a
primeira linha de cada grupo de dados. O resultado da conexão de todas as seqüências de entrada.A
segunda linha gera o resultado de cada número inteiro mais 1

3 4 
Tom Mike Jack 
1 2 3 4 
1 2 
Pequim 
100 200

Saída de amostra

TomMikeJack 
2,3,4,5, 
Pequim 
101.201,
#include <iostream> 
#include <iostream> 
#include < string >
 usando o  namespace std;
// 在此处补充你的代码

template < class T, classe T1> vazio MyForeach (T * _start, T * _END, vazio f (T1 t)) 
{ para (T * p = _start; p <_END; p ++ ) 
    { 
        f ( * p); 
    } 
} void Print ( string s) 
{ 
    cout << s; 
} void Inc ( int


    



& n) 
{
     ++ n; 
} 
Cadeia matriz [ 100 ];
int a [ 100 ];
int main () 
{ 
    int m, n;
    while (cin >> m >> n) 
    { 
        para ( int i = 0 ; i <m; ++ i) 
            cin >> array [i];
        para ( int j = 0 ; j <n; ++ j) 
            cin >> a [j]; 
        MyForeach (matriz, matriz + m, Imprimir);
        cout << endl; 
        MyForeach (a, a + n, Inc);
        for ( int i = 0 ; i <n; ++ i) 
            cout << a [i] << " , " ; 
        cout << endl; 
    } 
    retornar  0 ; 
}



003: filtro simples

 
    
#include <iostream> 
#include <string> 
usando o namespace std;
 
    
// Adicione seu código aqui
 
    
bool LargerThan2 (int n) 
{ 
	return n> 2; 
} 
bool LongerThan3 (string s) 
{ 
	return s.length ()> 3; 
} 

string as1 [5] = {"Tom", "Mike", "Jack", "Ted", "Lucy"}; 
string as2 [5]; 
int a1 [5] = {1,2,3,4,5}; 
int a2 [5]; 
int main () { 
	string * p = Filtro (as1, as1 + 5, as2, LongerThan3); 
	for (int i = 0; i <p - as2; ++ i) 
		cout << as2 [i]; 
	cout << endl; 
	int * p2 = Filtro (a1, a1 + 5, a2, LargerThan2); 
	for (int i = 0; i <p2-a2; ++ i) 
		cout << a2 [i] << ","; 
	retornar 0; 
}
Entrada sem saída MikeJackLucy 
3,4,5, entrada de amostra
Nenhuma
Saída de amostra
MikeJackLucy 
3,4,5,
#include <iostream> 
#include < string >
 usando o  namespace std;
// 在 此处 补充, 的
 T 
modelo < classe T, classe T1, classe T2> 
 Filtro T (T s, T e, T s2, T1 f (T2)) 
{ 
    while (s! = E) {
         if (f (* s)) {
             * s2 ++ = * s ++ ; 
        } 
        mais ++ s; 
    } 
    retornar s2; 
} 
bool LargerThan2 ( int n) 
{ 
    return n> 2; 
} 
bool LongerThan3 ( string s) 
{ 
    return s.length ()> 3 ; 
} 

string as1 [ 5 ] = { " Tom " , " Mike " , " Jack " , " Ted " , " Lucy " };
string as2 [ 5 ];
int   a1 [ 5 ] = { 1 , 2 , 3 , 4 , 5 };
int a2 [ 5 ];
int main () {
     string * p = Filtro (as1, as1 + 5 , as2, LongerThan3);
    for ( int i = 0 ; i <p - as2; ++ i) 
        cout << as2 [i]; 
    cout << endl;
    int * p2 = Filtro (a1, a1 + 5 , a2, LargerThan2);
    for ( int i = 0 ; i <p2-a2; ++ i) 
        cout << a2 [i] << " , " ;
    retornar  0 ; 
}

 

 

 




Acho que você gosta

Origin www.cnblogs.com/hitwhchang/p/12733395.html
Recomendado
Clasificación