2018.12.06

@2018.12.06

2018.12.06

第一题:

第一题
这题主要是:1.找出非元音字母 2.大写换成小写
但是我这里的方法有点费时费力,打的时候要数ASCII码,超级慢

     #include "stdafx.h"
     #include<iostream>
    using namespace std;
        
    int main()
    {
    	char a[101];
    	cin >> a;
    	int i = 0;
    	while (a[i] != 0)
    	{
    		if (a[i] == 65 || a[i] == 79 || a[i] == 89 || a[i] == 69 || a[i] == 85 || a[i] == 73 ||
    			a[i] == 65 + 32 || a[i] == 79 + 32 || a[i] == 89 + 32 || a[i] == 69 + 32 || a[i] == 85 + 32 || a[i] == 73 + 32)
    		{
    			i++;
    			continue;
    		}
    		if (a[i] >= 65 && a[i] <= 90) cout << "." << char(a[i] + 32);
    		else cout << "." << a[i];
    		i++;
    	}
    	return 0;
    }

这里提供另一位不用数ASCII码的解法:

    int main()
    {
    char *letter = new char[100];
    char *print = new char[100];
    char exp[] = { 'a','e','i','o','u','y','A','E','I','O','U','Y' };
    gets_s(letter, 100);
    int len1;
    for (int i=0; i <= 99; i++) { if (letter[i] == '\0') { len1 = i; break; } } for (int i = 0; i <= len1; i++) for (int j = 0; j <= 11; j++) { if (letter[i] == exp[j]) letter[i] ='0'; } int rem = 0; for (int i = 0; i <= len1; i++) { if ((letter[i] >= 'a' && letter[i] <= 'z') || (letter[i] >= 'A' && letter[i] <= 'Z'))
    {
    print[rem] = letter[i];
    rem++;
    }
    }
    int sum=0;
    for (int i = 0; i < 2 * rem; i++)
    { 
    if (i % 2 == 1) { letter[i] = print[sum]; sum++; }
    else letter[i] = '.'; 
    }
    puts(letter);
    delete letter;
    delete print;
    }

第二题:

第二题
这题要注意那个入住的有两个人,而且他们要住同一间房。所以。。。。。。

    #include "stdafx.h"
    #include<iostream>
    using namespace std;
    
    int main()
    {
    	int n, a, b, ans = 0;
    	cin >> n;
    	for (int i = 0; i < n; i++)
    	{
    		cin >> a >> b;
    		if (a < b - 1)ans++;
    	}
    	cout << ans;
    	return 0;
    }

第三题:

第三题
这里其实是在统计前一个和后一个字符相同的次数。题目讲的很绕,要先想想是个什么情况再做。

    #include "stdafx.h"
    #include<iostream>
    using namespace std;
    
    int main()
    {
    	int n;
    	cin >> n;
    	char a[50];
    	cin >> a;
    	int k = 0;
    	for (int i = 0; i < n - 1; i++)
    	{
    		if (a[i] == a[i + 1])k++;
    	}
    	cout << k << endl;
    	return 0;
    }

第四题:

第四题
这题学到了什么叫无限输入多组数据。哇哦,第一次写while(cin >> a>> b)。

    #include "stdafx.h"
    #include<iostream>
    using namespace std;
    
    int main()
    {
    	int a, b;
    	while (cin >> a >> b)
    	{
    		cout << a + b << endl;
    
    	}
    	return 0;
    }

第五题:

第五题
这道题我的解题思路:1.被5分出了多少组数,分别是什么? 2.排序 3.输出
这道题写太长了,感觉思路好像不太行。之后参考一下别人的。

    #include"stdafx.h"
    #include <iostream>
    using namespace std;
    
    int main()
    {
    	char num[1000] = { 0 };		 //用户输入的数
    	int n, i;					//n是记录被5分出了多少组数,i是记录目前在num【1000】中的位置
    	int p[500];				//保存被分出的数
    	
    	while (cin >> num)
    	{
    	//初始化p,n,i
    		for (i = 0; i < 500; i++)
    		{
    			p[i] = -1;
    		}
    		n = 0;
    		i = 0;
    	//开始分析输入的数
    		while (num[i] != 0)
    		{
    			while (num[i] != 53)
    			{
    				if (num[i] == 0)break;
    				if (p[n] == -1)p[n] = 0;
    				p[n] = p[n] * 10 + int(num[i] - 48);
    				i++;
    			}
    			if (p[n] != -1)n++;
    			i++;
    		}
    	//按大小排序
    		for (int j = 0; j < n; j++)
    		{
    			for (int h = j; h < n; h++)
    			{
    				if (p[j] > p[h])
    				{
    					int t = p[j];
    					p[j] = p[h];
    					p[h] = t;
    				}
    			}
    		}
    	//按格式输出
    		for (int h = 0; h < n-1; h++)
    		{
    			cout << p[h]<<" ";
    		}
    		cout << p[n - 1];
    		cout << endl;
    	}
    	return 0;
    }

第六题:

第六题
很简单的题,是在看看对ASCII码的了解程度。其实是和“输入三个整数,从小到大输出”是一样的。

    #include <iostream>
    using namespace std;
    
    int main()
    {
    	char num[3];
    	while (cin >> num)
    	{
    		for (int i = 0; i < 3; i++)
    		{
    			for (int j = i; j < 3; j++)
    			{
    				if (num[i] > num[j])
    				{
    					char t = num[i];
    					num[i] = num[j];
    					num[j] = t;
    				}
    			}
    		}
    		for (int i = 0; i < 2; i++)
    		{
    			cout << num[i] << " ";
    		}
    		cout << num[2]<<endl;
    	}
    	return 0;
    }

第七题:

第七题
关键在于怎么控制格式:
C语言:print("%.3lf" ,rrrPI4/3);
c++: fixed << setprecision(3)
什么的。。。。。。。

    #include<iomanip>
    #include<iostream>
    using namespace std;
    #define PI 3.1415927
    
    
    int main()
    {
    	double r;
    	while (cin >> r)
    	{
    		cout << fixed << setprecision(3) << r * r*r*PI*4.0 / 3.0 << endl;
    	}
        return 0;
    }

第八题:

第八题
题目几乎什么都给了,记得等价于“==”和等于“=”的区别。

    #include<iostream>
    using namespace std;
    
    int main()
    {
    	int a, b;
    	while (cin >> a >> b)
    	{
    		if ((a + b) % 86 == 0)
    		{
    			cout << "yes" << endl;
    		}
    		else
    		{
    			cout << "no" << endl;
    		}
    	}
        return 0;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值