• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

又亦

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

阶段二补题报告

 

 这题呢,也挺无语的,考试的时候忘了再if前加else,导致一直报错还不知道原因,所以加上else就过了

void fun(char s[],int b[]){
    int i=0,j=0;
    for(i=0;s[i]!='\0';i++){
        if((s[i]>='a'&&s[i]<='z')||(s[i]>='A'&&s[i]<='Z'))
            b[0]++;
        else if(s[i]>='0'&&s[i]<='9')
            b[1]++;
        else if(s[i]==' ')
            b[2]++;
        else
            b[3]++;
    }
}

 

 不知道怎么输出多个最大值,然后就想先存放第一个最大值,再利用循环找接下来的最大值:

#include<stdio.h>
int main(){
    int n,i=0,j=0,c;
    int a[1001],b[1001]={0};
    scanf("%d",&n);
    for(i=0;i<n;i++){
        a[i]=i+1;
    }
    while(scanf("%d",&c)!=EOF){
        for(j=0;j<n;j++){
            if(c==a[j])
                b[j]++;
        }
    }
   int max=0;
    for(i=0;i<n;i++){
        if(b[i]>b[max])
            max=i;
    }
    for(j=0;j<n+1;j++){
        if(b[j]==b[max])
            printf("%d %d\n",j+1,b[max]);
    }
    return 0;
}

 

 一直出现编译错误,没找到原因,看了提示应该是其中有中文的符号,考试的时候真的没找出原因,换了个方法,分两次输出:首字母开始的正常序列和非正常序列,这样不用找规律,可以直接输出;泪目

 这题确实是没有想到好方法把所有数字按题目规律输出,想了很久,就是分四次循环输出四边,但是容易出现最中心的数字输不出;所以每一边少输出一个最后的数字,最后一个循环都输出;

伪码:

Input N,n,num=1
  for n<- 0 to N-n-2
      for i<- n-1 to N-n-2
           a[i][N-n-1]=num++
      for j<- n-1 to N-n-2
           a[N-n-1][j]=num++
      for h<- n-1 to N-n-2
           a[h][n]=num++
      for k<- n+1 to N-n-2
           a[n][k]=num++
  end
for i<- 0 to N-1
   for j<- 0 to N-1
      output a[i][j]
      end
end

 

最后代码实现:

#include<stdio.h>
int main(){
    int N,i,j,n,num=1;
    int a[21][21];
    scanf("%d",&N);
    for(n=0;n<=N/2;n++){
        for(i=n;i<N-n-1;i++)
            a[i][N-n-1]=num++;
        for(j=N-n-1;j>n;j--)
            a[N-n-1][j]=num++;
        for(i=N-n-1;i>=n;i--)
            a[i][n]=num++;
        for(j=n+1;j<N-n-1;j++)
            a[n][j]=num++;
    }
    for(i=0;i<N;i++){
        for(j=0;j<N;j++)
            printf("%4d",a[i][j]);
        printf("\n");
    }
    return 0;
}

我觉得我这章学得挺认真的,题也写了,反思了一下觉得可能是没复习,还有做题时的方法有问题;

希望逐渐找到恰当的方法去学,认真做好应做的事。

posted on 2021-12-11 23:59  又亦  阅读(26)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3