20130822C语言编程实践课第四天

本文集锦了多个程序设计实例,包括学生成绩管理、数组操作、最大最小值寻找、排序算法实现等,通过具体案例讲解了C语言编程的基础知识和技术要点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*赛利有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[N],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[N],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);
} /***********************************第八题****************************************/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值