一、循环输入
#include "stdio.h"
void main()
{
char c;
do
{
printf("我告诉你1+1=2\n");
printf("你相信吗?(y/n)");
c=getchar();
fflush(stdin);
}while(c=='n');
}
二、输入行与列显示矩形
#include "stdio.h"
void main()
{
int row,col,i,j;
char c; do{
printf("行:");
scanf("%d",&row);
fflush(stdin); printf("列:");
scanf("%d",&col);
fflush(stdin); for(i=;i<=row;i++)
{
for(j=;j<=col;j++)
{
printf("*");
}
printf("\n");
}
printf("是否继续?(y/n)");
c=getchar();
fflush(stdin);
}while(c=='y'); }
三、1-10之间的阶乘
1!+2!+3!
1+(1*2)+(1*2*3)
#include "stdio.h"
void main()
{
int i,j,n,cnt,sum=; for(j=;j<=;j++)
{
cnt=;
for(i=;i<=j;i++)
{
cnt=cnt*i;
printf("%d x ",i);
}
sum+=cnt;
printf("=%d\n",cnt);
}
printf("%d",sum);
}
四、买苹果
#include "stdio.h"
void main()
{
//总苹果数x0.8/天数=每天花的钱
int n,cnt=,day=; //表示当天买的苹果数
for(n=;n<=;n=n*,day++)
{
cnt=cnt+n; //累加每天的苹果数
printf("%d %d\n",n,cnt);
} printf("%.2f",(cnt*0.8)/day);
}
五、课后练习吃饭吃菜
#include "stdio.h"
void main()
{
int i,j;
for(i=;i<=;i++)
{
printf("\n吃一口饭\n");
for(j=;j<=;j++)
{
printf("吃菜\t");
}
}
}
六、分解质因数
/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
int i,n;
scanf("%d",&n); //输入
for(i=;i<=n;i++) //假定i-n之间的所有数都是n的质因数
{
if(n%i==) //是否整除
{
printf("%d \t",i);
n=n/i;
i--; //为了避免跳过多个相同因子将i--
}
//n=28 14 7 1
//i=2 1 2 1 2 3 4 5 6 7 6 7 8
}
//2 2 7
}
七、101-200间的素数,P136
/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
//判断一个数是否是素数
int n=,leap,i,cnt=; while(n<=) //外重循环用于准备数
{
leap=; //假定n就是素数
for(i=;i<n/;i++)
{
if(n%i==) //只要在2-n之间有一个数被整除
{
leap=; //标记n不是素数
break; //结束内重循环
}
} if(leap)
{
cnt++;
printf("%d ",n);
if(cnt%==) printf("\n"); //当素数个数是10的倍数时换行
}
n++;
} printf("\n101-200之间共有%d个素数",cnt); }
八、乒乓球比赛题 P140
#include "stdio.h"
void main()
{
int i,j;
for(i='a';i<='c';i++)
{
for(j='x';j<='z';j++)
{
if(i=='a'&&j=='x'||(i=='c'&&(j=='x'||j=='z'))) continue;
printf("%c VS %c \n",i,j);
}
}
}
#include "stdio.h"
void main()
{
int i,j,k=,flag=,n=;
char a[]="abc";
char b[]="xyz";
char c[]; for(i=;i>=;i--)
{
for(j=;j<=;j++)
{
if(a[i]=='a'&&b[j]=='x'||(a[i]=='c'&&(b[j]=='x'||b[j]=='z'))) continue; //如果数组中已存在则不行
flag=;
for(k=;k<;k++)
{
if(c[k]==b[j]){flag=;break;};
} //存入数组中
if(flag==){
c[n++]=b[j];
break;
}
}
} for(i=;i<;i++)
{
printf("%c对%c \t",a[i],c[-i]);
}
}