20130822C语言编程实践课第四天
2013-08-22 13:56
176 查看
/*赛利有12枚银币。其中有11枚真币和1枚假币。假币看起来和真币没有区别,但是重量不同。赛利不知道假币比真币轻还是重。于是他向朋友借了一架天平。赛利希望称三次就能找出假币并且确定假币是轻是重。例如:如果赛利用天平称两枚硬币,发现天平平衡,说明两枚都是真的。如果赛利用一枚真币与另一枚银币比较,发现它比真币轻或重,说明它是假币。经过精心安排每次的称量,赛利保证在称三次后一定能够确定假币。
任务
编写一个程序,根据三次称量的结果,确定哪一个是假币,并指出其轻重。
*/
(作业)
/***********************************第一题*****************************************/
//数组:学生成绩的录入和输出
/*#include<stdio.h>
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<stdio.h>
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<num[i])
max=num[i];
if(min>num[i])
min=num[i];
}
printf("\n最大值为:%d\n",max);
printf("\n最小值为:%d\n",min);
}
/***********************************第二题*****************************************/
/***********************************第三题*****************************************/
#include<stdio.h>
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<stdio.h>
#define N 5
main()
{
int grade
,temp,i,j;
for(i=0;i<N;i++)
scanf("%d",&grade[i]);
for(i=0;i<N;i++)
{
for(j=0;j<N-i-1;j++)
{
if(grade[j]<grade[j+1])
{
temp=grade[j+1];
grade[j+1]=grade[j];
grade[j]=temp;
}
}
printf("%d",grade[j]);
}
}
/***********************************第四题*****************************************/
/***********************************第四题*****************************************/
#include<stdio.h>
#define N 5
main()
{
int grade
,temp,i,j;
for(i=0;i<N;i++)
scanf("%d",&grade[i]);
for(i=0;i<N;i++)
{
for(j=0;j<N-i-1;j++)
{
if(grade[j]<grade[j+1])
{
temp=grade[j+1];
grade[j+1]=grade[j];
grade[j]=temp;
}
}
// printf("%d\n",grade[j]);
}
for(i=0;i<N;i++)
printf("%d\n",grade[i]);
}
/***********************************第四题*****************************************/
/***********************************第五题*****************************************/
#include<stdio.h>
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<num2)/*交换两个数,使大数放在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<stdio.h>
#include<stdlib.h>
#include<string.h>
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<stdio.h>
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);
} /***********************************第八题****************************************/
任务
编写一个程序,根据三次称量的结果,确定哪一个是假币,并指出其轻重。
*/
(作业)
/***********************************第一题*****************************************/
//数组:学生成绩的录入和输出
/*#include<stdio.h>
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<stdio.h>
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<num[i])
max=num[i];
if(min>num[i])
min=num[i];
}
printf("\n最大值为:%d\n",max);
printf("\n最小值为:%d\n",min);
}
/***********************************第二题*****************************************/
/***********************************第三题*****************************************/
#include<stdio.h>
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<stdio.h>
#define N 5
main()
{
int grade
,temp,i,j;
for(i=0;i<N;i++)
scanf("%d",&grade[i]);
for(i=0;i<N;i++)
{
for(j=0;j<N-i-1;j++)
{
if(grade[j]<grade[j+1])
{
temp=grade[j+1];
grade[j+1]=grade[j];
grade[j]=temp;
}
}
printf("%d",grade[j]);
}
}
/***********************************第四题*****************************************/
/***********************************第四题*****************************************/
#include<stdio.h>
#define N 5
main()
{
int grade
,temp,i,j;
for(i=0;i<N;i++)
scanf("%d",&grade[i]);
for(i=0;i<N;i++)
{
for(j=0;j<N-i-1;j++)
{
if(grade[j]<grade[j+1])
{
temp=grade[j+1];
grade[j+1]=grade[j];
grade[j]=temp;
}
}
// printf("%d\n",grade[j]);
}
for(i=0;i<N;i++)
printf("%d\n",grade[i]);
}
/***********************************第四题*****************************************/
/***********************************第五题*****************************************/
#include<stdio.h>
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<num2)/*交换两个数,使大数放在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<stdio.h>
#include<stdlib.h>
#include<string.h>
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<stdio.h>
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);
} /***********************************第八题****************************************/
相关文章推荐
- 20130827C语言编程实践课第七天
- 五个好的C语言编程实践
- 网络编程TCP总结及实践-C语言
- 20130830C语言编程实践课
- 五个好的C语言编程实践
- 网络编程UDP总结及实践-C语言
- 20130823C语言编程实践课第五天
- C语言编程实践
- 20130828C语言编程实践课第八天
- 编程实践中C语言的一些常见细节
- 20130902C语言编程实践课
- 读书笔记-Linux C 编程从基础到实践-第二章 在Linux下进行C语言开发
- 20130826C语言编程实践课第六天
- 五个好的C语言编程实践
- OOC 面向对象C语言编程实践
- 第二章 C语言编程实践
- 20130903C语言编程实践课
- C语言实践(2016级第5周):编程思维启蒙
- 编程实践中C语言的一些常见细节
- 总结五个好的C语言编程实践