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;
}
运行结果:
思维导图: