7.7作业

1、杨辉三角

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
    int m;
    printf("输入行数");
    scanf("%d",&m);
    char a[m][m];
    for(int i=0;i<m;i++){
        for(int j=0;j<=i;j++){
        if(j==0||i==j)
            a[i][j]=1;
        else
            a[i][j]=a[i-1][j-1]+a[i-1][j];

        }
    }   
    for(int i=0;i<m;i++){
        for(int j=0;j<m-i;j++)
            printf("  ");
        for(int j=0;j<=i;j++)                        
            printf("%4d",a[i][j]);
        printf("\n");
    }   
    return 0;
}

 2、图形打印

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
    for(int i='A';i<'E';i++){
        for(int j='A';j<=i;j++){
            printf("%c",i);}
    printf("\n");}
    printf("\n");
    for(int i='D';i>='A';i--){
        for(int j='A';j<=i;j++){
            printf("%c",i);}
    printf("\n");}
    return 0;
}     

3、日本发生命案,警察把嫌疑人确定在4人当中(a,b,c,d)

审讯结果:两个人说的真话,两个人说的假话

a: 罪犯在其他三个当中

B:人不是我杀的,是c杀的

c: a和d之间有一个是罪犯

d: b说的是事实

写一个代码,判断谁是罪犯

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
    char k='a';
    for(k='a';k<='d';k++){                                         
        if((k!='a')+(k=='c')+(k=='a'||k=='d')+(k=='c')==2)
            printf("%c是凶手\n",k);
    }   
    return 0;
}

d是凶手

5、给定一个整数,判断它能否被3,5,7整除,并输出以下信息:

1、能同时被3,5,7整除(直接输出3 5 7,每个数中间一个空格);

2、只能被其中两个数整除(输出两个数,小的在前,大的在后。例如:3 5或者3 7或者5 7,中间用空格分隔);

3、只能被其中一个数整除(输出这个除数);

4、不能被任何数整除,输出小写字符‘n’,不包括单引号。

#include<string.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
    int a,b,c,d;
    printf("输入一个整数");
    scanf("%d",&a);
    b=a%3==0;
    c=a%5==0;
    d=a%7==0;
    if(b+c+d==3)
        printf("3 5 7\n");
    else if(b+c==2)
        printf("3 5\n");
    else if(b+d==2)
        printf("3 7\n");
    else if(c+d==2)
        printf("5 7\n");
    else if(b)
        printf("3\n");
    else if(c)
        printf("5\n");
    else if(d)
        printf("7\n");
    else
        printf("n\n");
    return 0;
}  

5、字符串逆置

“good good study”

"study good good"

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
    char a[]="good good study";
    int n=strlen(a)-1,t,i=0;
    while(i<n){
    t=a[i]; a[i]=a[n];a[n]=t;
    i++;n--;
    }
    int s=0,c=0;
    while(a[s]!='\0'){
        while(a[c]!=' '&&a[c]!='\0')           
        {c++;}
        int k=c-1;
        while(s<k){
        t=a[s];a[s]=a[k];a[k]=t;
        s++;k--;
        }
        while(a[c]==' '){
        c++;}s=c;
        
    }
    puts(a);

    return 0;
}

 6、实现atoi函数

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
    char a[10]="";
    scanf("%s",a);
    int sum=0;
    for(int i=0;a[i]!='\0';i++){
        sum=sum*10+(a[i]-'0');
    }   
    printf("%d\n",sum);
    return 0;
}    

 7、输入一个字符串,删除字符串中的空格

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
    char a[]="this is my class";
    char b[20]="";
    int k=0;
    for(int i=0;a[i]!='\0';i++){
        if(a[i]==' ')
            continue;
        b[k]=a[i];
        k++;
    }   
    printf("%s\n",b);
    return 0;
}    

 8、四个字符串函数,非函数实现

strlen

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
    char a[]="dadaad";
    int count=0;
    for(int i=0;a[i]!='\0';i++){
        count++;
    }   
    printf("%d\n",count);
    return 0;
}

strcpy

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
    char a[20]="aaaa";
    char b[]="bbbbbb";
    for(int i=0;b[i]!='\0';i++){
        a[i]=b[i];
    }   
    a[i]=='\0';
    puts(a);
    puts(b);
    return 0;                                  
}

strcat

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
    char a[20]="adasda";
    char b[]="klllm";
    int k=0;
    for(int i=0;b[i]!='\0';i++){
        while(a[k]!='\0')
            k++;
        a[k]=b[i];k++;
    }
    a[k]='\0';
    puts(a);
    return 0;                                  
}

 strcmp

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
    char a[]="dada";
    char b[]="dadgwe";
    int i=0;
    while(a[i]==b[i]){
        if(a[i]=='\0')
            break;
        i++;
    }   
    if(a[i]>b[i])
        printf("a>b\n");
    else if(a[i]<b[i])
        printf("a<b\n");
    else
        printf("a=b\n");

    return 0;
} 

 

 

基于Swin Transformer与ASPP模块的图像分类系统设计与实现 本文介绍了一种结合Swin Transformer与空洞空间金字塔池化(ASPP)模块的高效图像分类系统。该系统通过融合Transformer的全局建模能力和ASPP的多尺度特征提取优势,显著提升了模型在复杂场景下的分类性能。 模型架构创新 系统核心采用Swin Transformer作为骨干网络,其层次化窗口注意力机制能高效捕获长距离依赖关系。在特征提取阶段,创新性地引入ASPP模块,通过并行空洞卷积(膨胀率6/12/18)和全局平均池化分支,实现多尺度上下文信息融合。ASPP输出经1x1卷积降维后与原始特征拼接,有效增强了模型对物体尺寸变化的鲁棒性。 训练优化策略 训练流程采用Adam优化器(学习率0.0001)和交叉熵损失函数,支持多GPU并行训练。系统实现了完整的评估指标体系,包括准确率、精确率、召回率、特异度和F1分数等6项指标,并通过动态曲线可视化模块实时监控训练过程。采用早停机制保存最佳模型,验证集准确率提升可达3.2%。 工程实现亮点 1. 模块化设计:分离数据加载、模型构建和训练流程,支持快速迭代 2. 自动化评估:每轮训练自动生成指标报告和可视化曲线 3. 设备自适应:智能检测CUDA可用性,无缝切换训练设备 4. 中文支持:优化可视化界面的中文显示与负号渲染 实验表明,该系统在224×224分辨率图像分类任务中,仅需2个epoch即可达到92%以上的验证准确率。ASPP模块的引入使小目标识别准确率提升15%,特别适用于医疗影像等需要细粒度分类的场景。未来可通过轻量化改造进一步优化推理速度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值