#include<iostream>
#include<cstring>
#include<string>
#include<math.h>
#include<sstream>
using namespace std;
#define MAX 1000
//习题3-1
/*
int Grade[MAX];
int Count[MAX];
*/
//习题3-3
//char Char[MAX];
//习题3-4
/*
char Cal[MAX];
char Str[MAX];*/
//习题3-5
int Tran[MAX][MAX];
//习题3-6
//char Array[MAX];
//习题3-7
//int Array_int[MAX];
//习题3-8
char CharArray[MAX];
int main()
{
//习题3-1
/*
memset(Grade,-1,sizeof(Grade));
memset(Count,0,sizeof(Count));
int grade,count = 0;
while (cin >> grade)
{
Grade[count++] = grade;
}
for (int i = 0; i < count; i++)
{
int temp = Grade[i];
int num = 0;
for (int i = 0; i < count; i++)
if (temp == Grade[i])
num++;
Count[temp] = num;
}
int Max = Count[0];
int location;
for (int i = 0; i < MAX; i++)
{
if (Max < Count[i])
Max = Count[i];
}
for (int i = 0; i < MAX; i++)
{
if (Max == Count[i])
{
cout << "出现次数最多的分数为: " << endl;
cout << i << " " << Count[i] << endl;
}
}*/
//习题3-2
/*
int ch;
int count_char = 0;
int count_word = 0;
//getchar()返回值为int, 返回值为10时,即在标准输入流中读取到了换行符
//在条件判断和循环判断当中,非零即为真,所以即使if(-1),那么仍然判断为真,继续执行语句
//所以此处判断才应该为while ((ch = getchar()) != 10),而非ch=getchar(),因为当输入ctrl+z时,getchar()
//返回值为-1,非零,仍然会继续循环
while ((ch = getchar()) != 10)
{
if ((ch == 32) && (count_char == 0))
continue;
if ( (ch == 32) && (count_char != 0) )
{
count_word++;
cout << "count_word = " << count_word << endl;
continue;
}
if ( ( (ch >= 65)&&(ch <= 90) ) || ( (ch >= 97)&&(ch <= 122) ) )
{
count_char++;
cout << "count_char = " << count_char << endl;
}
}
if (count_char != 0)
{
count_word++;
cout << "当前" << count_word << "个" << "单词的平均长度为:" << (float)count_char/count_word << endl;
}
else
cout << "当前输入为空" << endl;
*/
//习题3-3
/*
gets(Char);
cout << Char << endl;
int size = strlen(Char);
cout << "字符串长度为: " << size << endl;
int count_digit = 0;
int sum = 1;
int num = 0;
for (int i = 0; i < size; i++)
{
cout << "i is " << i << " " << Char[i] << endl;
if ( (Char[i] >= '0') && (Char[i] <= '9') && (Char[i+1] >= '0') && (Char[i+1] <= '9'))
count_digit++;
if ( (Char[i] >= '0') && (Char[i] <= '9') && (Char[i+1] >= 'A') && (Char[i+1] <= 'Z'))
{
count_digit++;
while (count_digit)
{
int x = pow(10,count_digit - 1);
int y = Char[i - count_digit + 1] - '0';
int total = x * y;
num += total;
count_digit--;
}
cout << "num is " << num << endl;
sum *= num;
}
if ( (Char[i] >= '0') && (Char[i] <= '9') && ((i+1) == size))
{
count_digit++;
while (count_digit)
{
int x = pow(10,count_digit - 1);
//获得数字字符代表的整型数值
int y = Char[i - count_digit + 1] - '0';
int total = x * y;
num += total;
count_digit--;
}
cout << "num is " << num << endl;
sum *= num;
}
if ((Char[i] >= 'A') && (Char[i] <= 'Z'))
{
count_digit = 0;
num = 0;
continue;
}
}
cout << sum % 1000 << endl;
*/
//习题3-4
/*
gets(Cal);
int size = strlen(Cal);
int count = 0;
for (int i = 0; i < size; i++)
{
if ((Cal[i] >= '0') && (Cal[i] <= '9'))
Str[count++] = Cal[i];
if ((Cal[i] == '+') || (Cal[i] == '-') || (Cal[i] == '*'))
Str[count++] = Cal[i];
}
Str[count] = '\0';
//cout << Str << endl;
//cout << count << endl;
int count_digit = 0;
int num1 = 0;
int num2 = 0;
if ( ((Str[0] >= '0') && (Str[0] <= '9')) && ((Str[1] >= '0') && (Str[1] <= '9')))
{
num1 = 10*(Str[0]- '0') + Str[1]- '0';
if ( ((Str[3] >= '0') && (Str[3] <= '9')) && ((Str[4] >= '0') && (Str[4] <= '9')))
{
num2 = 10*(Str[3] - '0') + Str[4] - '0';
}
else
{
num2 = Str[3] - '0';
}
switch(Str[2])
{
case '+':
cout << num1 + num2 << endl;
break;
case '-':
cout << num1 - num2 << endl;
break;
case '*':
cout << num1 * num2 << endl;
break;
}
}
if (((Str[0] >= '0') && (Str[0] <= '9')) && ((Str[1] == '+') || (Str[1] == '-') || (Str[1] == '*')))
{
num1 = Str[0] - '0';
if ( ((Str[2] >= '0') && (Str[2] <= '9')) && ((Str[3] >= '0') && (Str[3] <= '9')))
num2 = 10*(Str[2]- '0') + Str[3]- '0';
else
num2 = Str[2]- '0';
cout << num1 << " " << num2 << endl;
switch(Str[1])
{
case '+':
cout << num1 + num2 << endl;
break;
case '-':
cout << num1 - num2 << endl;
break;
case '*':
cout << num1 * num2 << endl;
break;
}
}
*/
//习题3-5
//习题3-6
/*
//base为基数,m是正整数
unsigned m,base;
cin >> base;
cin >> m;
int temp = m / base;
int temp2 = m % base;
int count = 0;
Array[count++] = temp2 + '0';
Array[count++] = temp + '0';
while (temp >= base)
{
temp2 = temp % base;
Array[count-1] = temp2 + '0';
temp /= base;
Array[count++] = temp + '0';
}
Array[count] = '\0';
for (int i = count - 1; i > 0; i--)
cout << Array[i];
cout << Array[0] << endl;
*/
//习题3-7
/*
int base,num;
cin >> base;
cin >> num;
stringstream str;
str << num;
string Str;
str >> Str;
int length = Str.size();
int number = 0;
for (string::iterator iter = Str.begin(); iter != Str.end(); iter++)
number += ((*iter)-'0')* pow(base,--length);
cout << number << endl;
*/
//习题3-8
/*
int EnglishBoard[]=
{
1,2,3,
1,2,3,
1,2,3,
1,2,3,
1,2,3,
1,2,3,4,
1,2,3,
1,2,3,4
};
gets(CharArray);
int size = strlen(CharArray);
for (int i = 0; i < size; i++)
{
int n = CharArray[i] - 'a';
cout << CharArray[i] << EnglishBoard[n];
}
cout << endl;
*/
system("pause");
return 0;
}
转载于:https://my.oschina.net/u/2286203/blog/361086