1、杨辉三角
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
int m;
printf("输入行数");
scanf("%d",&m);
char a[m][m];
for(int i=0;i<m;i++){
for(int j=0;j<=i;j++){
if(j==0||i==j)
a[i][j]=1;
else
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
}
for(int i=0;i<m;i++){
for(int j=0;j<m-i;j++)
printf(" ");
for(int j=0;j<=i;j++)
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[])
{
for(int i='A';i<'E';i++){
for(int j='A';j<=i;j++){
printf("%c",i);}
printf("\n");}
printf("\n");
for(int i='D';i>='A';i--){
for(int j='A';j<=i;j++){
printf("%c",i);}
printf("\n");}
return 0;
}
3、日本发生命案,警察把嫌疑人确定在4人当中(a,b,c,d)
审讯结果:两个人说的真话,两个人说的假话
a: 罪犯在其他三个当中
B:人不是我杀的,是c杀的
c: a和d之间有一个是罪犯
d: b说的是事实
写一个代码,判断谁是罪犯
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
char k='a';
for(k='a';k<='d';k++){
if((k!='a')+(k=='c')+(k=='a'||k=='d')+(k=='c')==2)
printf("%c是凶手\n",k);
}
return 0;
}
d是凶手
5、给定一个整数,判断它能否被3,5,7整除,并输出以下信息:
1、能同时被3,5,7整除(直接输出3 5 7,每个数中间一个空格);
2、只能被其中两个数整除(输出两个数,小的在前,大的在后。例如:3 5或者3 7或者5 7,中间用空格分隔);
3、只能被其中一个数整除(输出这个除数);
4、不能被任何数整除,输出小写字符‘n’,不包括单引号。
#include<string.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
int a,b,c,d;
printf("输入一个整数");
scanf("%d",&a);
b=a%3==0;
c=a%5==0;
d=a%7==0;
if(b+c+d==3)
printf("3 5 7\n");
else if(b+c==2)
printf("3 5\n");
else if(b+d==2)
printf("3 7\n");
else if(c+d==2)
printf("5 7\n");
else if(b)
printf("3\n");
else if(c)
printf("5\n");
else if(d)
printf("7\n");
else
printf("n\n");
return 0;
}
5、字符串逆置
“good good study”
"study good good"
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
char a[]="good good study";
int n=strlen(a)-1,t,i=0;
while(i<n){
t=a[i]; a[i]=a[n];a[n]=t;
i++;n--;
}
int s=0,c=0;
while(a[s]!='\0'){
while(a[c]!=' '&&a[c]!='\0')
{c++;}
int k=c-1;
while(s<k){
t=a[s];a[s]=a[k];a[k]=t;
s++;k--;
}
while(a[c]==' '){
c++;}s=c;
}
puts(a);
return 0;
}
6、实现atoi函数
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
char a[10]="";
scanf("%s",a);
int sum=0;
for(int i=0;a[i]!='\0';i++){
sum=sum*10+(a[i]-'0');
}
printf("%d\n",sum);
return 0;
}
7、输入一个字符串,删除字符串中的空格
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
char a[]="this is my class";
char b[20]="";
int k=0;
for(int i=0;a[i]!='\0';i++){
if(a[i]==' ')
continue;
b[k]=a[i];
k++;
}
printf("%s\n",b);
return 0;
}
8、四个字符串函数,非函数实现
strlen
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
char a[]="dadaad";
int count=0;
for(int i=0;a[i]!='\0';i++){
count++;
}
printf("%d\n",count);
return 0;
}
strcpy
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
char a[20]="aaaa";
char b[]="bbbbbb";
for(int i=0;b[i]!='\0';i++){
a[i]=b[i];
}
a[i]=='\0';
puts(a);
puts(b);
return 0;
}
strcat
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
char a[20]="adasda";
char b[]="klllm";
int k=0;
for(int i=0;b[i]!='\0';i++){
while(a[k]!='\0')
k++;
a[k]=b[i];k++;
}
a[k]='\0';
puts(a);
return 0;
}
strcmp
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
char a[]="dada";
char b[]="dadgwe";
int i=0;
while(a[i]==b[i]){
if(a[i]=='\0')
break;
i++;
}
if(a[i]>b[i])
printf("a>b\n");
else if(a[i]<b[i])
printf("a<b\n");
else
printf("a=b\n");
return 0;
}