C语言第七次作业练习

以下程序教材基于 谭浩强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列。

/*找出二维数组中的鞍点,规定二维数组大小为3行4列*/

# 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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Johnny__Wang__

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值