/*赛利有12枚银币。其中有11枚真币和1枚假币。假币看起来和真币没有区别,但是重量不同。赛利不知道假币比真币轻还是重。于是他向朋友借了一架天平。赛利希望称三次就能找出假币并且确定假币是轻是重。例如:如果赛利用天平称两枚硬币,发现天平平衡,说明两枚都是真的。如果赛利用一枚真币与另一枚银币比较,发现它比真币轻或重,说明它是假币。经过精心安排每次的称量,赛利保证在称三次后一定能够确定假币。
任务
编写一个程序,根据三次称量的结果,确定哪一个是假币,并指出其轻重。
*/
(作业)
/***********************************第一题*****************************************///数组:学生成绩的录入和输出
/*#include
main()
{
int i,j,student[3][2];
for(i=0;i<3;i++)
{
printf("\n输入学号%d两个学期的成绩:",i+1);
for(j=0;j<2;j++)
scanf("%d",&student[i][j]);
}
printf("\n学员的学号及其两个学期的成绩为:\n");
printf("\n\t学号\t第一学期\t第二学期");
for(i=0;i<3;i++)
{
printf("\n\t");
printf("%d\t",i+1);
for(j=0;j<2;j++)
printf("%d\t\t",student[i][j]);
printf("\n");
}
}*/
/***********************************第一题*****************************************/
/***********************************第二题*****************************************/
/*在一些数中找到最大值和最小值*/#include
main()
{
int num[5],max,min,i;
printf("请输入5个数:\n");
for(i=0;i<5;i++)
scanf("%d",&num[i]);
max=num[0];
min=num[0];
for(i=1;i<5;i++)
{
if(max
max=num[i];
if(min>num[i])
min=num[i];
}
printf("\n最大值为:%d\n",max);
printf("\n最小值为:%d\n",min);
}
/***********************************第二题*****************************************/
/***********************************第三题*****************************************/
#include
main()
{
int i,j,num[7],search;
for(i=0;i<7;i++)
scanf("%d",&num[i]);
printf("\n 请输入要查找的数字:");
scanf("%d",&search);
for(i=0;i<7;i++)
{
if(num[i]==search)
{
printf("\n在数组的第%d个位置找到了数字%d!\n",i+1,search);
break;
}
}
if(i==7)
printf("\n没有找到!");
}
/***********************************第三题*****************************************/
/***********************************第四题*****************************************/
#include
#define N 5
main()
{
int grade[N],temp,i,j;
for(i=0;i
scanf("%d",&grade[i]);
for(i=0;i
{
for(j=0;j
{
if(grade[j]
{
temp=grade[j+1];
grade[j+1]=grade[j];
grade[j]=temp;
}
}
printf("%d",grade[j]);
}
}
/***********************************第四题*****************************************/
/***********************************第四题*****************************************/
#include
#define N 5
main()
{
int grade[N],temp,i,j;
for(i=0;i
scanf("%d",&grade[i]);
for(i=0;i
{
for(j=0;j
{
if(grade[j]
{
temp=grade[j+1];
grade[j+1]=grade[j];
grade[j]=temp;
}
}
// printf("%d\n",grade[j]);
}
for(i=0;i
printf("%d\n",grade[i]);
}
/***********************************第四题*****************************************/
/***********************************第五题*****************************************/
#include
void main()
{
int n,i;
printf("input number please:");
scanf("%d",&n);
printf("%d=",n);
for(i=2;i<=n;i++)
{
while(n!=i)
{
if(n%i==0)
{
printf("%d*",i);
n=n/i;
}
else
break;
}
}
printf("%d",n);
}
/***********************************第五题*****************************************/
/***********************************第六题*****************************************/
/***********************************第六题*****************************************/
/*输入两个正整数m和n,求其最大公约数和最小公倍数
1辗转相除法求最大公约数
当输入两个数m,n后比较m和n的大小,m中要是较大的一个数,n中放较小的那个数;
m去除以n,余数如果为0的话,则n就为最大公约数,否则的话,就做一个循环,
(把n的值赋给m,把前两个数相除得到的值赋给n)直到余数为0;求出来的n就为最大公约数;
再利用:m*n=最小公倍数*最大公约数;
2当输入两个数m,n后比较m和n的大小,m中要是较大的一个数,n中放较小的那个数;
m去除以n,余数如果为0的话,则m就为最小公倍数,否则的话,让m去乘以i(是依次增加的);
利用得到的这个值去继续除以n,直到余数为零,得到的m就为最小公倍数
*/
#include "stdio.h"
#include "conio.h"
main()
{
int a,b,num1,num2,temp;
printf("please input two numbers:\n");
scanf("%d,%d",&num1,&num2);
if(num1
{
temp=num1;
num1=num2;
num2=temp;
}
a=num1;
b=num2;
while(b!=0)/*利用辗除法,直到b为0为止*/
{
temp=a%b;
a=b;
b=temp;
}
printf("公约数为:%d\n",a);
printf("公倍数为::%d\n",num1*num2/a);
}
/***********************************第六题*****************************************/
/***********************************第七题*****************************************/
//输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
//利用while语句,条件为输入的字符不为'\n'.
/*
#include
#include
#include
int i,a[4];
char t;
int main()
{
for(i=0;;i++)
{
scanf("%c",&t);
if(t=='\n')
break;
else if
(t>='A'&&t<='Z')
a[0]++;
else if(t>='a'&&t<='z')
a[0]++;
else if(t==' ')
a[1]++;
else if(t>='0'&&t<='9')
a[2]++;
else
a[3]++;
}
for(i=0;i<4;i++)
printf("%d ",a[i]);
system("pause");
return 0;
}
*/
/***********************************第七题****************************************/
/***********************************第八题****************************************/ /*求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。 例如2+22+222+2222+22222(此时共有5个数相加),几个数相由键盘控制。*/ #include main() { int a,n,count=1; long int sn=0,tn=0; printf("please input a and n \n"); scanf("%d,%d",&a,&n); printf("a=%d,n=%d\n",a,n); while(count<=n) { tn=tn+a;//一个数 sn=sn+tn;//前几个数的和 a=a*10; ++count; } printf("a+aa+...=%ld\n",sn); } /***********************************第八题****************************************/