一、循环输入
#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=1;i<=row;i++)
{
for(j=1;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=0;
for(j=1;j<=10;j++)
{
cnt=1;
for(i=1;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=0,day=0; //表示当天买的苹果数
for(n=2;n<=100;n=n*2,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=1;i<=10;i++)
{
printf("\n吃一口饭\n");
for(j=1;j<=3;j++)
{
printf("吃菜\t");
}
}
}
六、分解质因数
/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
int i,n;
scanf("%d",&n); //输入
for(i=2;i<=n;i++) //假定i-n之间的所有数都是n的质因数
{
if(n%i==0) //是否整除
{
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=101,leap,i,cnt=0;
while(n<=200) //外重循环用于准备数
{
leap=1; //假定n就是素数
for(i=2;i<n/2;i++)
{
if(n%i==0) //只要在2-n之间有一个数被整除
{
leap=0; //标记n不是素数
break; //结束内重循环
}
}
if(leap)
{
cnt++;
printf("%d ",n);
if(cnt%10==0) 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=0,flag=0,n=0;
char a[]="abc";
char b[]="xyz";
char c[3];
for(i=2;i>=0;i--)
{
for(j=0;j<=2;j++)
{
if(a[i]=='a'&&b[j]=='x'||(a[i]=='c'&&(b[j]=='x'||b[j]=='z'))) continue;
//如果数组中已存在则不行
flag=0;
for(k=0;k<3;k++)
{
if(c[k]==b[j]){flag=1;break;};
}
//存入数组中
if(flag==0){
c[n++]=b[j];
break;
}
}
}
for(i=0;i<3;i++)
{
printf("%c对%c \t",a[i],c[2-i]);
}
}