关闭

C语言第七次作业练习

标签: c语言
153人阅读 评论(0) 收藏 举报
分类:

以下程序教材基于 谭浩强C程序设计(第四版)

第1题 完成例6.9,有3个字符串,要求找出其中最大者。

# include<stdio.h>  
# include<string.h>  

int main(void)  
{  
    char str[3][20];//定义二维数组(存放三个字符串)  
    char string[20];//定义一维数组  
    int i;  
    for(i=0;i<3;i++)  
    {  
        gets(str[i]);//每换行输入一个字符串  
    }  
    if(strcmp(str[0],str[1])>0)  
        strcpy(string,str[0]);  
    else  
        strcpy(string,str[1]);  

    if(strcmp(str[2],string)>0)  
        strcpy(string,str[2]);  

    printf("输入的三个字符串中最大的字符串是%s\n",string);  

    return 0;  
}  

第2题 教材P.169习题10。

# include<stdio.h>
# include<string.h>

int main(void)
{
    char a[3][80];
    int i,j,daxie,xiaoxie,num,space,other;
    daxie=xiaoxie=num=space=other=0;

    for(i=0;i<3;i++)
    {
        printf("请输入一行字符\n");
        gets(a[i]);
        for(j=0;j<80&&a[i][j]!='\0';j++)
        {
            if(a[i][j]>='A'&&a[i][j]<='Z')
                daxie++;
            else if(a[i][j]>='a'&&a[i][j]<='z')
                xiaoxie++;
            else if(a[i][j]>='0'&&a[i][j]<='9')
                num++;
            else if(a[i][j]==' ')
                space++;
            else
                other++;
        }
    }
    printf("\n大写字母:%d\n小写字母:%d\n数字:%d\n空格:%d\n其他字符:%d\n",daxie,xiaoxie,num,space,other);

    return 0;
}

第3题 教材P.169习题13。

# include<stdio.h>
# include<string.h>

int main(void)
{
    char a[100],b[50];
    int i=0,j=0;

    printf("请输入第一行字符串:\n");
    gets(a);
    printf("请输入第二行字符串:\n");
    gets(b);

    while(a[i]!='\0')
        i++;
    while(b[j]!='\0')
    a[i++]=b[j++];
    a[i]='\0';
    printf("字符串相连的结果为:%s\n",a);

    return 0;
}

第4题 教材P.169习题15。

# include<stdio.h>
# include<string.h>

int main(void)
{
    char a[100],b[100];
    int i;

    printf("请输入第二个字符数组内容:");
    gets(b);
    for(i=0;i<100;i++)
        a[i]=b[i];
    printf("第一个字符数组内容为:%s\n",a);

    return 0;
}

第5题 实现顺序查找算法,规定数组长度为10。

/*实现顺序查找算法*/

# include<stdio.h>
# include<stdlib.h>

int main(void)
{
    int i,val,a[10],ret;
    char ch;

    for(i=0;i<10;i++)
        a[i]=rand()%100;  //产生100以内的随机整数//
    for(i=0;i<10;i++)
        printf("%3d",a[i]);  //输出产生的随机整数//

    do
    {
        printf("\n请输入所要查找的元素:");
        scanf("%d", &val);

        for(i=0;i<10;i++)
        if(val==a[i])
            ret=1;

        if(1 == ret)
            printf ("匹配成功,存在该元素!\n");
        else
            printf ("匹配失败,不存在该元素!\n");

        printf("您想继续么(Y/N): ");
        scanf(" %c", &ch);  

    }
    while ('y'==ch || 'Y'==ch);

    return 0;
}

第6题 教材P.169习题9。实现折半查找算法,规定数组长度为11。

# include<stdio.h>

int main(void)
{
    int i,number,top,bott,mid,loca,a[11],flag=1,sign;
    char c;printf("由大到小输入11个数 :\n");

    for(i=0;i<11;i++)
    {
        scanf("%d",&a[0]);
        i++;
        while(i!=-1&&i<11)
        {
            scanf("%d",&a[i]);
            if(a[i]<a[i-1])
                i++;
            else
            {
                printf("输入有误,请重新输入:\n");
                i=-1;
            }
        }
    }
    printf("\n");
    for(i=0;i<11;i++)
        printf("%4d",a[i]);
    printf("\n");
    while(flag)
    {
        printf("寻找:");
        scanf("%d",&number);
        sign=0;
        top=0;
        bott=11-1;
        if((number<a[0])||(number>a[11-1]))
            loca=-1;
        while((!sign)&&(top<=bott)){mid=(bott+top)/2;
        if(number==a[mid])
        {
            loca=mid;
            printf("已找到%d,它是第%d个数\n",number,loca+1);
            sign=1;}
        else if(number>a[mid])
            bott=mid-1;
        else
            top=mid+1;
        }
        if(!sign||loca==-1)
            printf("无此数\n");
        printf("如继续寻找,请输入数字;否则按n/N结束");
        scanf("%c",&c);
        if(c=='N'||c=='n')
            flag=0;
    }
    return 0;
}

第7题 教材P.169习题8。找出二维数组中的鞍点,规定二维数组大小为3行4列。

/*找出二维数组中的鞍点,规定二维数组大小为34*/

# include<stdio.h>

int main(void)
{
    int i,j,k,a[3][4],b,c,d;
    printf("请输入3*4数组:\n");
    for(i=0;i<3;i++)
        for(j=0;j<4;j++)
            scanf("%d",&a[i][j]);
        for(i=0;i<3;i++)
        {
            b=a[i][0];
            c=0;
            for(j=0;j<4;j++)
                if(a[i][j]>b)
                {
                    b=a[i][j];
                    c=j;
                }
            d=1;
            for(k=0;k<3;k++)
                if(b>a[k][c])
                {
                    d=0;
                    continue;
                }
                if(d)
                {
                    printf("第%d行,第%d列的%d是鞍点\n",i+1,c+1,b);
                    break;
                }
        }
        if(!d)
            printf("不存在鞍点!\n");

        return 0;
}
0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Unity 小游戏练习(一)

这次,我们做一个小游戏练习,这个游戏是通过 w s 和上下箭头控制方块阻挡小球的移动。首先,工程需要一点小素材,试试右键保存这两张图片,如果不行的话可以自己下载其他图片代替,也可以在我文章底部上传的工程中寻找这两个素材。 然后新建一个工程,然后我们修改一下设置,把它设置成 2d 的环境,点击 Wi...
  • u014230923
  • u014230923
  • 2016-06-10 23:38
  • 843

C++第七次上机作业

//题二: #include using namespace std; int jiou(int x) { if(x%2==0) return false; else return true; } int jiecheng(int y) { int z=1; for(int i=1...
  • my1163958849
  • my1163958849
  • 2016-06-05 10:25
  • 66

java 设计作业——学生类的基本练习

设计要求: 建立一个学生类,有姓名、学号、3门课成绩、总分等信息,能输入输出学生数据,并能对总分进行排序,打印名次。 思路:老师给的思路全部都封装在了一个类中,我写的则分成了两个类,可能一些方法没有写成函数封装,但是觉得习惯而已,有些一句话的程序没必要也放到函数里。 吐...
  • bobodem
  • bobodem
  • 2015-11-12 17:13
  • 2223

第七次上机作业

项目3:特殊三位数#include using namespace std; int fact(int);//定义函数要用分号,且括号里只需int int main() { int b,c,d,e,a=100,sum; while(a<1000) { b=a/100; ...
  • vince0623
  • vince0623
  • 2016-06-05 19:31
  • 95

C++第七次作业

定义一个有10个的数组a,输出数组a中所有的奇数的阶乘和和偶数的阶乘和。其中将奇偶数的判断和阶段的计算定义为函数。 [cpp] view plain copy #include   using namespace std;   int jc(int x);  ...
  • wojiaoyidao
  • wojiaoyidao
  • 2016-06-17 10:46
  • 56

C++第七次作业

项目一: #include int isPrimer(int n)//判断是否为素数 { int a,b=1; for(a=2;a<n;a++) if(n%a==0) { b=0; break; } return b; } int isPalindrome(int...
  • blog_tanlang
  • blog_tanlang
  • 2016-06-06 00:23
  • 118

C++第七次作业

项目一、特殊的三位数 #include long fac(int R); void main() { for(int i=0;i<=9;i++) for(int j=0;j<=9;j++) for(int k=0;k...
  • XD1948066336
  • XD1948066336
  • 2016-06-05 23:51
  • 207

第七次c++作业

项目一:素数与回文数#include int es(int n) //判断为素数 { int i; for(i=2;i<n;i++) { if(n%i==0) break; } if(i=...
  • dragonlich
  • dragonlich
  • 2016-06-06 11:43
  • 149

c++第七次上机作业

项目1:数组素数排序 定义一个有10个的数组a,将数组a中的所有素数放在数组b,再对数组b排序 #include   using namespace std;  void sort(int...
  • qq_34248933
  • qq_34248933
  • 2016-06-05 22:11
  • 93

C++第七次上机作业

二、奇偶阶乘 #include using namespace std; int factorial(int x)//计算阶乘 { int i,s=1; for(i=1;i<=x;i++) { s*=i; } return s; } b...
  • huanghuilin2016
  • huanghuilin2016
  • 2016-06-05 14:07
  • 121
    个人资料
    • 访问:1335次
    • 积分:110
    • 等级:
    • 排名:千里之外
    • 原创:10篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档