盖房子
#include <stdio.h>
void main(){
int i,j,n,m;
scanf("%d %d",&n,&m);
for(i=0;i<n;i++){
for(j=0;j<m;j++)
printf("+-");
printf("+");
printf("\n");
for(j=0;j<m;j++)
printf("|*");
printf("|");
printf("\n");
}
for(j=0;j<m;j++)
printf("+-");
printf("+");
}
字母&&数字金字塔问题
#include <stdio.h>
void main(){
int i,j,n;
char c;
scanf("%c",&c);
if(c>='A'&&c<='Z'){
for(i=0;i<=c-'A';i++){
for(j=i;j<c-'A'-1;j++)
printf(" ");
for(j=0;j<=i;j++)
printf("%c",'A'+j);
for(j=i;j>0;j--)
printf("%c",'A'+j-1);
printf("\n");
}
}
if(c>='1'&&c<='9')
for(i=0;i<=c-'1';i++){
for(j=i;j<c-'1'-1;j++)
printf(" ");
for(j=0;j<=i;j++)
printf("%c",'1'+j);
for(j=i;j>0;j--)
printf("%c",'1'+j-1);
printf("\n");
}
}
~创造回文字符串
//制造回文字符串
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void main(){
char s[500000];
int i, n,len=0;
memset(s,0,500000);
scanf("%d",&n);
for(i=0;i<n;i++){
strcat(s+len+1,s);
s[len]='A'+i;
len=strlen(s);
}
puts(s);
}
模型串与子串的匹配次数--暴力匹配
#include <string.h>
#include <stdio.h>
void main(){
char s1[1000],s2[1000];
int sum=0,i,j,n,m;
gets(s1);
gets(s2);
n=strlen(s1);
m=strlen(s2);
for(i=0;i<n;i++){
for(j=0;j<m;j++)
if(s1[i+j]!=s2[j])
break;
if(j==m)
sum++;
}
printf("%d",sum);
}
~计算某一天是周几的问题
#include <stdio.h>
int whatday(int year,int mon,int day){
int ans=0;
int i;
for(i=1;i<year;i++){
if(i%100!=0&&i%4==0||i%400==0){
ans+=366 % 7;
ans%=7;
}
else{
ans+=365 % 7;
ans%=7;
}
}
for(i=1;i<mon;i++){
if(i==1||i==3||i==5||i==7||i==8||i==10||i==12){
ans+=31 % 7;
ans%=7;
}
else if(i==4||i==6||i==9||i==11){
ans+=30 % 7;
ans%=7;
}
else if((year%100!=0&&year%4==0)||year%400==0){
ans+=29 % 7;
ans%=7;
}
else{
ans+=28 % 7;
ans%=7;
}
}
ans+=(day-1) % 7;
ans%=7;
return ans;
}
void main(){
char week[10][10]={"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"};
int year,mon,day;
scanf("%d %d %d",&year,&mon,&day);
printf("%s",week[whatday(year,mon,day)]);
}
计算恋爱纪念日
#include <stdio.h>
int month[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
void main(){
int year,mon,day,n;
int i;
scanf("%d %d %d %d",&year,&mon,&day,&n); //n是恋爱的天数
for(i=0;i<n;i++){
day++;
if((year%100!=0&&year%4==0)||year%400==0)
month[2]=29;
else
month[2]=28;
if(day==month[mon]+1){
day=1;
mon++;
}
if(mon==13){
mon=1;
year++;
}
}
printf("%d-%02d-%02d",year,mon,day);
}