7.7 作业 以及 一维二维字符数组的思维导图

 1. 杨辉三角,正三角类型

代码:

#include <stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
	int m;
	printf("enter m:");
	scanf("%d",&m);
	int a[m][m];
	int i,j,k;
	for(i=0;i<m;i++)
	{	for(k=i;k<m;k++)
		    printf("  ");
		for(j=0;j<i+1;j++)
		{  	if(i==j || j==0)
			   a[i][j]=1;
			else
			   a[i][j]=a[i-1][j]+a[i-1][j-1];
			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[])
{
	char a='A';
	int i;
	for(a='A';a<='D';a++)
	{   for(i=0;i<a-'A'+1;i++)
			printf("%c",a);
		printf("\n");}
	printf("\n");
	for(a='D';a>='A';a--)
	{   for(i=0;i<a-'A'+1;i++)
			printf("%c",a);
		printf("\n");}
	printf("\n");
	return 0;
}

运行结果:

3. 穷举算法杀人犯

代码:

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

运行结果:

 

4.判断

代码:

#include <stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
	int a;
	printf("请输入给定的整数:");
	scanf("%d",&a);
	if(a%3==0 && a%5==0 && a%7==0)
	{	printf("3 5 7\n");}
	else if(a%3==0 && a%5==0)
	{	printf("3 5\n");}
	else if(a%3==0 && a%7==0)
	{	printf("3 7\n");}
	else if(a%5==0 && a%7==0)
	{	printf("5 7\n");}
	else if(a%3==0 || a%5==0 || a%7==0)
	{   if(a%3==0)
		    printf("3\n");
		else if(a%5==0)
			printf("5\n");
		else
			printf("7\n");}
	else
	{	printf("n\n");}
	return 0;
}

运行结果:

5.字符串单词逆置

代码:

#include <stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
	char s[100];
	printf("输入单词:");
	gets(s);
	int i,j,k;
	char t;
	i=0;j=strlen(s)-1;
	while(i<=j)
	{   t=s[i];s[i]=s[j];s[j]=t;
		i++;j--;
	}
    printf("%s\n",s);
	i=0;j=i;
	while(s[i]!='\0')
	{
		while(s[j]!=' '&&s[j]!='\0')
			j++;
		k=j-1;
		while(i<=k)
     	{t=s[i];s[i]=s[k];s[k]=t;
		 i++;k--;
		}
		while(s[j]==' ')
			j++;
		i=j;
	}
	puts(s);
	return 0;
}

运行结果:

6.实现 atoi函数

代码:

#include <stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
	int n;
	int sum,i=0;
	char a[100];
	printf("输入数字:");
	gets(a);
	while(a[i]!='\0')
	{   n=a[i]-'0';
		sum=sum*10+n;
		i++;
	}
	printf("sum=%d\n",sum);
	return 0;
}

运行结果;

7.删除字符串空格

代码:

#include <stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
	int i=0,j=0,k,n,m;
	char t;
	char a[50];
	char b[50];
	printf("输入字符串:");
	gets(a);
	n=strlen(a);
	for(i=0;i<n;i++)
	{	if(a[i]!=' ' && a[i]!='\0')
		{   b[j]=a[i];
			j++;}
		else if(a[i]=='\0')
			break;}
	b[j]='\0';
	printf("删去空格后的字符串为:%s\n",b);
	return 0;
}

运行结果:

 

8.非函数实现字符串函数

代码:

#include <stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
	char s1[30]="hello lls";
	char s2[]="hello";
	char s3[30]="he";
	char s4[]="hhello",s5[]="hhello";
	int count=0,i=0,j=0;
	printf("s1:%s\n s2:%s\n s3:%s\n s4%s\n s5%s\n",s1,s2,s3,s4,s5);
	//计算字符串长度
	while(s1[i]!='\0')
	{   count++;
		i++;}
	printf("字符串s1的长度为:%d\n",count);
    //复制字符串
	for(i=0;s2[i]!='\0';i++)
		s1[i]=s2[i];
	s1[i]='\0';
	printf("将s2复制给s1后,s1的值为:%s\n",s1);
	//连接字符串
	for(i=0;s3[i]!='\0';i++)
	{}
	for(j=0;s2[j]!='\0';j++,i++)
	{    s3[i]=s2[j];}
	s3[i]='\0';
	printf("将s2连接到s3之后的s3:%s\n",s3);
	int k=0;
	i=0;
	//字符串比较
	while(s4[i]==s5[i])
	{	if(s4[i]=='\0' || s5[i]=='\0')
			break;
		i++;}
	if(s4[i]>s5[i])
	   printf("比较s4和s5的结果是s4>s5\n返回值为:%d\n",s4[i]-s5[i]);
	else if(s4[i]<s5[i])
	   printf("比较s4和s5的结果是s4<s5\n返回值为:%d\n",s4[i]-s5[i]);
	else
	   printf("比较s4和s5的结果是s4=s5\n返回值为:%d\n",s4[i]-s5[i]);
	return 0;
}

运行结果:

 

思维导图:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值