算法笔记作业

1.题目:冒泡排序

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>  
using namespace std;

void Bubble_sort(int a[],int n){//n为数组长度
    for(int i=1;i<=n-1;i++){  //n-1趟 
        for(int j=0;j<=n-i-1;j++){
//当i=1时,内循环结束时的j+1(即j==n-i-1时,j+1==n-1)为数组边界
            if(a[j]>a[j+1]){
                int temp=a[j];
                a[j]=a[j+1];
                a[j+1]=temp;
            }
        }
    }
}

int main()
{
    int a[10];
    for(int i=0;i<=9;i++){
        scanf("%d",a+i);
    }
    Bubble_sort(a,10);
    for(int i=0;i<=9;i++){
        printf("%d\n",a[i]);
    }   
    return 0;
}

2.复制字符串中的元音字母

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>  
using namespace std;

void vowels(char s1[],char s2[]){
    int len1=strlen(s1);
    int num=0;
    for(int i=0;i<=len1-1;i++){
        if(s1[i]=='a'||s1[i]=='e'||s1[i]=='i'||s1[i]=='o'||s1[i]=='u'||s1[i]=='A'||s1[i]=='E'||s1[i]=='I'||s1[i]=='O'||s1[i]=='U'){
            s2[num++]=s1[i];
        }
    }
    s2[num]='\0';  
//在字符数组s2末尾添加空字符'\0',否则puts出错(因为不能识别到字符串结尾,puts是通过识别空字符'\0'作为字符串的结尾来输出的。在使用gets或scanf输入字符串时会自动在输入字符串的末尾添加'\0'。)
}


int main(){
    char s1[100],s2[100];
    gets(s1);
    vowels(s1,s2);
    puts(s2);
    return 0;
}

3.结构体与指针

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>  
using namespace std;

struct student{
    int num;
    char name[20];
    char sex;
    int age;
};


int main(){
    int n;
    scanf("%d",&n);
    struct student stu[30];
    struct student *p;
    p=stu;//定义指向结构体数组stu的指针,stu等价于&stu[0]
    for(int i=0;i<=n-1;i++){
        scanf("%d",&(p+i)->num);//别忘了加取地址运算符&,因为(p+i)->num是变量
        scanf("%s",(p+i)->name);
        getchar();//吃掉在输入字符串后输入的空格,防止sex被%c读取
        scanf("%c",&(p+i)->sex);
        scanf("%d",&(p+i)->age);
    }
    for(int i=0;i<=n-1;i++){
        printf("%d %s %c %d\n",(p+i)->num,(p+i)->name,(p+i)->sex,(p+i)->age);
    }
    return 0;
}

4.字符型A+B

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring> 
using namespace std;

    char a[10000];
    char b[10000];
    
int change(char *a){//删去字符中的',',并返回新的字符和新的长度 
    int len=strlen(a);
    int flag=1;//如果是正数返回1,负数返回-1 
    for(int i=0;i<=len-1;i++){
        if(a[0]=='-'){
           flag=-1;
            for(int j=0;j<=len-2;j++){
                a[j]=a[j+1]; //删去负号 
            }
            a[len-1]='\0';// 将原末尾改为'\0',得到新的字符串 
            len--;
        } 
        if(a[i]==','){
            for(int j=i;j<=len-2;j++){
                a[j]=a[j+1]; //删去逗号 
            }
            a[len-1]='\0';// 将原末尾改为'\0',得到新的字符串 
            len--;
        } 
    }
    int A;
    sscanf(a,"%d",&A);//把字符数组转换成数字 
    if(flag==-1) A=-A;//如果是负数,在数字前面添负号 
    return A; //返回数字的真实值 
        
}

 
int main(){
    while(scanf("%s%s",a,b)!=EOF){//一直输入两个字符串a和b 
        int A,B;
        A=change(a); //得到字符数组a对应的真实数值A 
        B=change(b);
        printf("%d\n",A+B);
    }
    return 0;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第3章 基本概念 3.1 语法 3.2 关键字和保留字 3.3 变量 3.4 数据类型 5种简单数据类型:Unde...
    RickCole阅读 5,149评论 0 21
  • 指针是C语言中广泛使用的一种数据类型。 运用指针编程是C语言最主要的风格之一。利用指针变量可以表示各种数据结构; ...
    朱森阅读 3,470评论 3 44
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,135评论 1 32
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,267评论 0 4
  • 一句“我养你啊”,很简短却饱含深意的话语,是不是常常会让很多姑娘感动的热泪盈眶,掩面哭泣?但其实真正走进婚姻里的很...
    尘埃的花阅读 188评论 0 0