coursera 中计算概论的第七周 B-06作业

来源:互联网 发布:手机唱歌声卡软件 编辑:程序博客网 时间:2024/06/05 18:22
/*描述在一个字符串中找出元音字母a,e,i,o,u出现的次数。输入输入一行字符串(字符串中可能有空格,请用cin.getline(s,counts)方法把一行字符串输入到字符数组s中,其中counts是s的最大长度,这道题里面可以直接写80。),字符串长度小于80个字符。输出输出一行,依次输出a,e,i,o,u在输入字符串中出现的次数,整数之间用空格分隔。样例输入If so, you already have a Google Account. You can sign in on the right.样例输出5 4 3 7 3提示注意,只统计小写元音字母a,e,i,o,u出现的次数。*/#include <iostream>using namespace std;int main(){    char s[80];//定义一个字符数组    cin.getline(s,80);//将字符串转换到字符数组中    int num[5]={0};    for(int i=0;s[i]!='\0';i++)    {        switch(s[i])        {        case 'a':num[0]++;break;        case 'e':num[1]++;break;        case 'i':num[2]++;break;        case 'o':num[3]++;break;        case 'u':num[4]++;break;        }    }    for(int i=0;i<5;i++)    {        cout << num[i] << ' ' ;    }    return 0;}//cin.getline(s,counts);是一个不错的函数
/*描述一般我们用strcmp可比较两个字符串的大小,比较方法为对两个字符串从前往后逐个字符相比较(按ASCII码值大小比较),直到出现不同的字符或遇到'\0'为止。如果全部字符都相同,则认为相同;如果出现不相同的字符,则以第一个不相同的字符的比较结果为准。但在有些时候,我们比较字符串的大小时,希望忽略字母的大小,例如"Hello"和"hello"在忽略字母大小写时是相等的。请写一个程序,实现对两个字符串进行忽略字母大小写的大小比较。输入输入为两行,每行一个字符串,共两个字符串。(请用cin.getline(s,80)录入每行字符串)(每个字符串长度都小于80)输出如果第一个字符串比第二个字符串小,输出一个字符"<"如果第一个字符串比第二个字符串大,输出一个字符">"如果两个字符串相等,输出一个字符"="样例输入Hellohello样例输出=*/#include <iostream>using namespace std;int main(){    char s1[80],s2[80];    cin.getline(s1,80);    cin.getline(s2,80);    int i=0;//因为i要在循环外使用,所以在此处定义循环变量    for(;s1[i]!='\0'&&s2[i]!='\0';i++)    {        if(s1[i]>='A'&&s1[i]<='Z')//如果字母为大写,统一转化为小写比较            s1[i]+=32;        if(s2[i]>='A'&&s2[i]<='Z')            s2[i]+=32;        if(s1[i]>s2[i])//比较当前字符的大小并判断            {                cout << '>' ;                return 0;            }        else if(s1[i]<s2[i])            {                cout << '<' ;                return 0;            }    }    if(s1[i]==s2[i])//如果某一个字符串遇到\0,此时看谁先遇到则谁小        cout << '=';    else if(s1[i]=='\0')        cout << '<';    else        cout << '>';    return 0;}

/*描述一个以'.'结尾的简单英文句子,单词之间用空格分隔,没有缩写形式和其它特殊形式输入一个以'.'结尾的简单英文句子(长度不超过500),单词之间用空格分隔,没有缩写形式和其它特殊形式输出该句子中最长的单词。如果多于一个,则输出第一个样例输入I am a student of Peking University.样例输出University*///该程序仅实现了以句点结尾的句子,如果不以句点结尾,则无法计算最后一个单词#include <iostream>using namespace std;int main(){    int maxlen=0;//用来记录最长单词    char s[80];    cin.getline(s,80);    int tmplen=0;//记录当前单词的长度    int last=0;//记录最长单词结束时的下标    for(int i=0;s[i]!='\0';i++)    {        if(s[i]=='.')//判断遇到句点的情况        {            if(maxlen<tmplen)            {                maxlen=tmplen;                tmplen=0;                last=i;            }            break;        }        else if(s[i]!=' ')            tmplen++;        else        {            if(maxlen<tmplen)            {                maxlen=tmplen;                tmplen=0;                last=i;            }        }    }    //上面这部分无法处理最后一个和句点连接的单词    //输出结果    cout << "该句子中最长单词为:" ;    for(int i=last-maxlen;i<last;i++)        cout << s[i] ;    return 0;}

/*描述编写一个函数,输入参数是5*5的二维数组,和n,m两个行下标。功能:判断n,m是否在数组范围内,如果不在,则返回0;如果在范围内,则将n行和m行交换,并返回1。在main函数中, 生成一个5*5的矩阵,输入矩阵数据,并输入n,m的值。调用前面的函数。如果返回值为0,输出error。如果返回值为1,输出交换n,m后的新矩阵。输入5*5矩阵的数据,以及n和m的值。输出如果不可交换,则输出error;如果可交换,则输出新矩阵样例输入1 2 2 1 25 6 7 8 39 3 0 5 37 2 1 4 63 0 8 2 40 4样例输出3 0 8 2 45 6 7 8 39 3 0 5 37 2 1 4 61 2 2 1 2提示不需要用while循环来反复读取文件中的测试集。输出error格式如下:cout<< "error" << endl;输出矩阵格式如下:cout<< setw(4)<< num;输出矩阵一行后要输出cout<< endl;*/#include <iostream>#include <iomanip>using namespace std;int fun1(int a[5][5],int n,int m)//新函数{    //判断两个数是否在数组范围内    if(n<0||n>=5||m>=5||m<0)    {        return 0;    }    else //交换两行    {        int tmpline[5]={0};        for(int i=0;i<5;i++)        {            tmpline[i]=a[n][i];            a[n][i]=a[m][i];            a[m][i]=tmpline[i];        }        return 1;    }}int main(){    int retnum;//用来记录函数返回的值    int n,m;//nm为输入的两个进行互换的数    cin >> n >> m ;    int a[5][5]={        {1,2,2,1,2},        {5,6,7,8,3},        {9,3,0,5,3},        {7,2,1,4,6},        {3,0,8,2,4}              };    retnum = fun1(a,n,m);    if(retnum==0)        {            cout << "error!" << endl;            return 0;        }    for(int i=0;i<5;i++)//输出数组            {                for(int j=0;j<5;j++)                cout << setw(4) << a[i][j] ;                cout <<endl;            }    return 0;}

/*我们拍摄的一张CT照片用一个二维数组来存储,假设数组中的每个点代表一个细胞。每个细胞的颜色用0到255之间(包括0和255)的一个整数表示。我们定义一个细胞是异常细胞,如果这个细胞的颜色值比它上下左右4个细胞的颜色值都小50以上(包括50)。数组边缘上的细胞我们不检测。现在我们的任务是,给定一个存储CT照片的二维数组,写程序统计照片中异常细胞的数目。输入第一行包含一个整数N(100>=N>2).下面有 N 行,每行有 N 个0~255之间的整数,整数之间用空格隔开。输出输出只有一行,包含一个整数,为异常细胞的数目。样例输入470 70 70 7070 10 70 7070 70 20 7070 70 70 70样例输出2*///备注;由于存储数据的数据并不确定大小,我又刚好不会//定义新的边长数组,所以决定建立一个超大数组,然后只访问//有效的部分#include <iostream>#define MAX 20using namespace std;int main(){    int n;//n为数组的有效长度    cin >> n ;    int badcell=0;//记录异常细胞数量    int a[MAX][MAX]={0};    for(int i=0;i<n;i++)        for(int j=0;j<n;j++)            cin >> a[i][j];    for(int i=1;i<n-1;i++)        for(int j=1;j<n-1;j++)        {           //当前的元素与周围四个元素比较            if(a[i-1][j]-a[i][j]>=50&&               a[i+1][j]-a[i][j]>=50&&               a[i][j-1]-a[i][j]>=50&&               a[i][j+1]-a[i][j]>=50)            badcell++;        }    //输出结果    cout << "异常细胞数:" << badcell ;    return 0;}


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 四维胎儿有问题怎么办 怀孕70天没有胎心怎么办 怀孕20天不想要怎么办 换轮胎胎压监测怎么办 怀孕了吐的厉害该怎么办 怀孕吐完嗓子疼怎么办 怀孕16周不想要怎么办 怀孕四个月胎盘低置怎么办 孕37周胎盘三级怎么办 孕37周胎盘老化怎么办 怀孕22周胎盘1级怎么办 婴儿吃奶粉吐奶怎么办 宝宝吐奶又拉稀怎么办 羊水穿刺21三体怎么办 开始长妊娠纹了怎么办 已经长了妊娠纹怎么办 孕晚期长妊娠纹怎么办 妊娠纹长出来了怎么办 没提前预约四维怎么办 ct检查冠脉钙化怎么办 残角子宫有内膜怎么办 怀孕了长痔疮了怎么办 人流后子宫内膜薄怎么办 多囊子宫内膜薄怎么办 6岁儿童不爱睡觉怎么办 初生儿嗓子哑了怎么办 6岁儿童睡眠不好怎么办 8岁儿童睡眠不好怎么办 1个月婴儿睡眠少怎么办 三岁宝宝心跳快怎么办 宝宝右心房稍大怎么办 胎儿右心房偏大怎么办 胎心监测波动小怎么办 怀孕6个月不想要了怎么办 高敏肌钙蛋白t高怎么办 龟头沟槽里长疙瘩怎么办 肝郁气滞的体质怎么办 手指甲长在肉里怎么办 甲床与指甲脱离怎么办 指甲往肉里面长怎么办 指甲和肉分离是怎么办