C++小菜鸡求帮助,ww

img

img


编程课有点摆了,现在急需完成,求帮助一下下,可以有偿,谢谢啦~

用C++写了一下(经测试暂无问题,如有问题,还请评论):
第一题:

#include <iostream>
using namespace std;

int main()
{
    string s;
    int flag=0,ans=0,i=0;
    getline(cin,s);
    while(s[i] != '\0')
    {
        if(s[i] == '*')
        {
            flag++;
        }
        
        if(s[i] == '@')
        {
            ans++;
        }    
        
        i++;
    }
    cout<<"*出现了"<<flag<<"次;"<<endl;
    cout<<"@出现了"<<ans<<"次."<<endl;
    return 0;
}

第二题:

#include <iostream>
#include <iomanip>
using namespace std;

bool cmp(float a)
{   
    if(a-(int)a==0) //核心在此a-(int)a
        return 0;
    else return 1;
}

int main(){
    /*
      思路:先对数组元素排序,然后判断奇偶,找出中位数 
     */ 
    int n,a[1000],i,j,t;
    
    double v;    // 存放中位数
    
    cin >> n;
    for(i = 0 ; i < n ; i++){
        cin >> a[i];
    }
    
    // 对数组元素按照小到大进行排序
    for(i = 1 ; i < n ; i++){
        for(j = 0 ; j <= n - i - j ; j++){
            if(a[j] > a[j + 1]){
                t = a[j];
                a[j] = a[j + 1];
                a[j + 1] = t;
            }
        }
    }
    
    // 得到中位数
    if(n % 2 != 0){
        v = a[n / 2];
    }else{
        v = (a[n / 2] + a[n / 2 - 1]) / 2.0;
    }
    
    if(cmp(v))
    {
        cout << fixed << setprecision(1) << v << endl;
    }
    else cout << v << endl;
    
}

如有帮助,还请采纳!谢谢!

用gets接收一行,逐个字符比较统计

#include <stdio.h>
int main()
{
    char s[1001] = {0};
    int a=0,b=0,i=0;
    gets(s);
    while(s[i] != '\0')
    {
        if(s[i] == '*')
            a++;
        else if(s[i] == '@')
            b++;
        i++;
    }
    printf("%d\n%d",a,b);
}

#include <stdio.h>
int main()
{
     int a[1000] = {0};
     int n,i,j,t;
     scanf("%d",&n);
     for(i=0;i<n;i++)
        scanf("%d",&a[i]);
     for(i=0;i<n-1;i++)
          for(j=0;j<n-i-1;j++)
          {
                if(a[j] > a[j+1])
                {
                     t  = a[j];
                      a[j] = a[j+1];
                    a[j+1] = t;
                }
          }
      if(n%2==1)
          printf("%d",a[(n+1)/2]);
      else
      {
          t = a[n/2-1] + a[n/2];
          if(t%2==0)
            printf("%d",t/2);
          else
            printf("%.1f",t/2.0);
      }
}

img