继续关注我的java博客
re: C二级练习25 linlin2005 2006-03-20 15:32
#include "stdio.h"
void dox(int a[]);
void main()
{
int a[5]={1,2,3,4,5},i;
dox(a);
for(i=0;i<5;i++)
{
printf("%d\t",a[i]);
}
}
void dox(int a[5])
{
int i,temp;
int j=4;
for(i=0;i<(int)(5/2);i++)//折半交换
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
j--;
}
}
re: C二级练习24 linlin2005 2006-03-20 15:23
#include "stdio.h"
void sort(int a[]);
void insert(int a[],int x);
void main()
{
int a[11]={12,11,36,2,4,58,65,25,45,14},i,x;
sort(a);
printf("insert a number:");
scanf("%d",&x);
insert(a,x);
printf("\n");
for(i=0;i<11;i++)
{
printf("%d\t",a[i]);
}
}
void sort(int a[11])//排序
{
int i,j,temp;
for(i=0;i<11;i++)
{
for(j=i+1;j<11;j++)
{
if(a[i]<a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
}
void insert(int a[11],int x)//插入数值
{
int i,j,temp;
for(i=0;i<11;i++)
{
if(x>a[i])//如果x大于数组中的某个数
{
for(j=11;j>i;j--)//那么其他的数相继住后移
{
a[j]=a[j-1];

}
a[i]=x;//并把x加到空出来的位置
break;//移完后中止循环
}
}
}
re: C二级练习23 linlin2005 2006-03-20 15:01
#include "stdio.h"
void input(int a[][]);
int sum(int a[][]);
void main()
{
int a[3][3];
input(a);
printf("\n%d\n",sum(a));
}
void input(int a[3][3])
{
int i,j;
for(i=0;i<3;i++)
{
printf("input the %d row:\n",i+1);
for(j=0;j<3;j++)
{
scanf("%d",&a[i][j]);
}
}
}
int sum(int a[3][3])
{
int i,j,x=0;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
if(i==j)//当i=0j=0,i=1j=1,i=2j=2时相加
{
x=x+a[i][j];
}
}
}
}
re: C二级练习22 linlin2005 2006-03-20 14:50
#include "stdio.h"
void dox(int a[]);
void main()
{
int a[10],i;
printf("input 10 number!");
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
dox(a);
for(i=0;i<10;i++)
{
printf("%d\t",a[i]);
}
}
void dox(int a[10])
{
int i,j,temp;
for(i=0;i<10;i++)
{
for(j=i+1;j<10;j++)
{
if(a[i]>a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
}
re: C二级练习21 linlin2005 2006-03-20 14:42
#include "stdio.h"
void dox(int a[]);
void main()
{
int a[100],i;
for(i=0;i<100;i++)//给数组赋值
{
a[i]=i+1;
}
dox(a);
printf("\n");
for(i=0;i<100;i++)//打印数组
{
if(a[i]!=0)
{
printf("%d\t",a[i]);
}
}
}
void dox(int a[100])//函数用二挑选素数
{
int i,j;
a[0]=0;
for(i=3;i<100;i++)
{
for(j=a[i]-1;j>=2;j--)
{
if(a[i]%j==0)//如果条件成立,说明不是素数,赋成0并终止循环
{
a[i]=0;
break;
}
}
}

}
re: C二级练习20 linlin2005 2006-03-20 14:17
#include "stdio.h"
void dox(int a[][]);
void main()
{
int a[3][3]={
{1,2,3},
{4,5,6},
{7,8,9}
},i,j;
printf("111111111\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf("%d ",a[i][j]);
}
printf("\n");
}
dox(a);
printf("222222222\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf("%d ",a[i][j]);
}
printf("\n");
}
}
void dox(int a[3][3])
{
int i,j,temp;
for(i=0;i<3;i++)
{
for(j=i;j<3;j++)
{
temp=a[i][j];
a[i][j]=a[j][i];
a[j][i]=temp;
}
}

}
re: C二级练习19 linlin2005 2006-03-20 13:50
#include "stdio.h"
void inputx(int *p);
void max_min_value(int *p);
void output(int *p);
void main()
{
int number[10];
inputx(number);
max_min_value(number);
output(number);
}
void inputx(int *p)//输入函数
{
int i;
printf("input 10 number:");
for(i=0;i<10;i++)
{
scanf("%d",(p+i));
}
}
void max_min_value(int *p)交换函数
{
int max=*(p+0);
int min=*(p+0);
int i,maxi,mini,temp;
for(i=0;i<10;i++)//找出最大最小值的位置
{
if(max<*(p+i))
{
max=*(p+i);
maxi=i;
}
if(min>*(p+i))
{
min=*(p+i);
mini=i;
}
}
printf("max:%d,min:%d",max,min);
temp=*(p+mini);//交换
*(p+mini)=*(p+0);
*(p+0)=temp;
temp=*(p+maxi);
*(p+maxi)=*(p+9);
*(p+9)=temp;
}
void output(int *p)//输出函数
{
int i;
printf("output:\n");
for(i=0;i<10;i++)
{
printf("%d\t",*(p+i));
}

}
re: C二级练习18 linlin2005 2006-03-20 13:10
#include "stdio.h"
void dox(int *a,int *b);
void main()
{
int x,y,z;
printf("input three number:");
scanf("%d,%d,%d",&x,&y,&z);
if(x>y)
{
dox(&x,&y);
}
if(x>z)
{
dox(&x,&z);
}
if(y>z)
{
dox(&y,&z);
}
printf("\n%d,%d,%d\n",x,y,z);
}
void dox(int *a,int *b)
{
int x;
x=*a;
*a=*b;
*b=x;
}
re: C二级练习17 linlin2005 2006-03-20 12:27
#include "stdio.h"
int panduan(int x);
void main()
{
int x;
printf("input a number:");
scanf("%d",&x);
if(panduan(x)==1)
{
printf("\nYES\n");
}else
{
printf("\nNO\n");
}
}
int panduan(int x)
{
int i;
if(x==2)
{
return 1;
}else
{
for(i=2;i<x;i++)
{
if(x%i==0)
{
return 0;
}
}
return 1;
}
}
re: C二级练习16 linlin2005 2006-03-20 12:11
#include "stdio.h"
int getgy(int a,int b);
int getgb(int a,int b);
void main()
{
int x,y,a,b;
printf("input 2 number:");
scanf("%d,%d",&a,&b);
x=getgy(a,b);
y=getgb(a,b);
printf("\n%d,%d\n",x,y);

}
int getgy(int a,int b)//计算最大公约数
{
int t;
t=a;
if(a>b)
{
t=b;
}//找到A和B的最小值
for(;t>0;t--)
{
if(a%t==0&&b%t==0)
{
break;
}
}
return t;
}
int getgb(int a,int b)//计算最小公倍数
{
int i;
i=a;
if(a<b)
{
i=b;
}//找到A和B的最大值
for(;i<=a*b;i++)
{
if(i%a==0&&i%b==0)
{
break;
}
}
return i;
}
re: 3月17日课堂练习-结构体 linlin2005 2006-03-19 11:35
#include "stdio.h"
typedef struct
{
int id;
char name[10];
int yuwen;
int shuxue;
int yingyu;
float avg;
float sum;
}STU;//定义一个结构体
//声明函数
void setdata(STU *s);
void display(STU *s);
void sort(STU *s);
void jisuan(STU *s);
void main()
{
STU stu[5];//声明一个结构体数组并依次调用函数进行赋值,计算,排序,显示。
setdata(stu);
jisuan(stu);
sort(stu);
display(stu);
}
void display(STU *s)//此函数用于显示信息
{
int i;
printf("\n编号\t姓名\t语文\t数学\t英语\t平均分\t总分\n");
for(i=0;i<5;i++)
{
printf("%d\t%s\t%d\t%d\t%d\t%6.2f\t%6.2f\n",s[i].id,s[i].name,s[i].yuwen,s[i].shuxue,s[i].yingyu,s[i].avg,s[i].sum);

}
}
void jisuan(STU *s)//此函数用于计算总分和平均分
{
int i;
for(i=0;i<5;i++)
{
s[i].sum=(float)(s[i].yuwen+s[i].shuxue+s[i].yingyu);
s[i].avg=(float)(s[i].sum/3.0);
}
}
void sort(STU *s)//此函数用于按总分进行排序
{
int i,j;
STU temp;
for(i=0;i<5;i++)
{
for(j=i+1;j<5;j++)
{
if(s[i].sum<s[j].sum)
{
temp=s[i];
s[i]=s[j];
s[j]=temp;
}
}
}
}
void setdata(STU *s)//此函数用于添加数据
{
int i;
for(i=0;i<5;i++)
{
printf("请输入第个%d学生的信息:\n",i+1);
printf("编号:");
scanf("%d",&s[i].id);
printf("姓名:");
scanf("%s",s[i].name);
printf("语文成绩:");
scanf("%d",&s[i].yuwen);
printf("数学成绩:");
scanf("%d",&s[i].shuxue);
printf("英语成绩:");
scanf("%d",&s[i].yingyu);
}

}
re: C二级练习15 linlin2005 2006-03-15 12:27
第二个图形可以按第一个图形的形式分成两部分来做,请试做一下。
re: C二级练习15 linlin2005 2006-03-15 12:18
#include "stdio.h"
void main()
{
int i,j,k;
for(i=0;i<4;i++)
{
for(j=0;j<=2-i;j++)
{
printf(" ");
}
for(k=0;k<=2*i;k++)
{
printf("*");
}
printf("\n");
}
}
re: C二级练习13 linlin2005 2006-03-15 11:58
#include "stdio.h"
void main()
{
int x,y,z;
printf("sdfsd");
for(x=0;x<=100;x++)
{
for(y=0;y<=100-x;y++)
{
for(z=0;z<=100-x-y;z++)
{
if((x+y+z==100)&&(0.5*x+2*y+3*z==100))
{
printf("x=%d,y=%d,z=%d\n",x,y,z);
}
}
}
}
}
re: C二级练习12 linlin2005 2006-03-15 11:18
此题已做为例题讲过!请参照!
re: C二级练习11 linlin2005 2006-03-15 11:15
#include "stdio.h"
void main()
{
float s=0,t=1;
int n,m;
for(n=1;n<=10;n++)
{
for(m=1;m<=n;m++)
{
t=t*m;
}
s=s+t;
t=1;
}
printf("-----%lf\n",s);
}
re: C二级练习10 linlin2005 2006-03-15 11:03
#include "stdio.h"
void main()
{
char c;
int letters=0,space=0,digit=0,other=0;
printf("请输入一行字符:\n");
while((c=getchar())!='\n')
{
if(c>='a'&&c<='z'||c>='A'&&c<='Z')
{
letters++;
}else if(c==' ')
{
space++;
}else if(c>='0'&&c<='9')
{
digit++;
}else
{
other++;
}
}
printf("字母数:%d\n空格数::%d\n数字数::%d\n其他数::%d\n",letters,space,digit,other);
}
re: C二级练习9 linlin2005 2006-03-15 10:56
#include "stdio.h"
void main()
{
int a,b,i,j,temp;
int x,y;
printf("请输入两个数:");
scanf("%d,%d",&a,&b);
if(a>b){
temp=a;
a=b;
b=temp;
}//将大数放在b中
for(i=b;i<=a*b;i++){//求最小公倍数
if(i%b==0&&i%a==0){
x=i;
break;
}
}
for(j=a;j>0;j--){
if(a%j==0&&b%j==0){//求最大公约数
y=j;
break;
}
}
printf("最小公倍数为:%d",x);
printf("最大公约数为:%d",y);
}
re: C二级练习8 linlin2005 2006-03-15 10:34
#include "stdio.h"
#include "math.h"
void main()
{
long int num;
int ge,shi,bai,qian,wan,wei;
printf("请输入一个整数:");
scanf("%ld",&num);
if(num>9999){
wei=5;
}else if(num>999){
wei=4;
}else if(num>99)}{
wei=3;
}else if(num>9){
wei=2;
}else{
wei=1;
}
printf("位数为:%d\n",wei);
printf("每位数字为:");
wan=num/10000;
qian=(int)(num-wan*10000)/1000;
bai=(int)(num-wan*10000-qian*1000)/100;
shi=(int)(num-wan*10000-qian*1000-bai*100)/10;
ge=(int)(num-wan*10000-qian*1000-bai*100-shi*10);
switch(wei){
case 5:printf("%d,%d,%d,%d,%d",wan,qian,bai,shi,ge);
printf("\n反序数字为:");
printf("%d,%d,%d,%d,%d",ge,shi,bai,qian,wan);
break;
case 4:printf("%d,%d,%d,%d",qian,bai,shi,ge);
printf("\n反序数字为:");
printf("%d,%d,%d,%d",ge,shi,bai,qian);
break;
case 3:printf("%d,%d,%d",bai,shi,ge);
printf("\n反序数字为:");
printf("%d,%d,%d",ge,shi,bai);
break;
case 2:printf("%d,%d",shi,ge);
printf("\n反序数字为:");
printf("%d,%d",ge,shi);
break;
case 1:printf("%d",ge);
printf("\n反序数字为:");
printf("%d",ge);
break;
}
}
re: C二级练习7 linlin2005 2006-03-15 10:17
#include "stdio.h"
void main()
{
float score;
char grade;
printf("请输入学生成绩:");
scanf("%f",&score);
while(score>100||score<0)
{
printf("输入有误,请重输:");
scanf("%f",&score);
}
switch((int)(score/100))
{
case 10:grade='A';break;
case 9:grade='A';break;
case 8:grade='B';break;
case 7:grade='C';break;
case 6:grade='D';break;
default:grade='E';
}
printf("成绩是%5.1f,相应的等级是%c\n",score,grade);
}
re: C二级练习6 linlin2005 2006-03-15 10:05
#include "stdio.h"
void main()
{
int x,y;
printf("输入x":);
scanf("%d",&x);
if(x<1)
{
y=x;
}else if(x<10)
{
y=2*x-1;
}else
{
y=3*x-11;
}
printf("y=%d:",y);
}
re: C二级练习5 linlin2005 2006-03-15 09:59
#include "stdio.h"
void main()
{
float c,f;
printf("请输入一个华氏温度:");
scanf("%f",&f);
c=(5.0/9.0)*(f-32);/*注意5和9要用实型表示,否则5/9的值为0*/
printf("摄氏温度为:%5.2f\n",c);
}
re: C二级练习4 linlin2005 2006-03-15 09:54
#include "stdio.h"
void main()
{
float h,r;
float pi=3.1415926;
printf("请输入圆的半径R,圆柱高H:");
scanf("%f,%f",&r,&h);
printf("圆的周长为:%f\n",2*pi*r);
printf("圆的面积为:%f\n",r*r*pi);
printf("圆柱体积为:%f\n",pi*r*r*h);
}
re: c二级练习2 linlin2005 2006-03-14 17:23
#include "stdio.h"
void main()
{
int a,b,c;
printf("请输入三个数:");
scanf("%d,%d,%d",&a,&b,&c);
if(a>b&&a>c){
printf("最大数是:%d",a);
}else if(b>a&&b>c){
printf("最大数是:%d",b);
}else{
printf("最大数是:%d",c);
}
}
re: c二级练习1 linlin2005 2006-03-14 17:17
#include "stdio.h"
void main()
{
printf("*********************\n");
printf("Very Good!\n");
printf("*********************\n");
}
re: C二级练习14 linlin2005 2006-03-09 09:46
#include "stdio.h"
void main()
{
int i;//循环变量
int j=1,k;//这两个变量交替赋值,算出每天的桃子数
for(i=8;i>=1;i--)
{
k=(j+1)*2;//前一天的桃子数是今天桃子数加1再乘以2
j=k;//让j使终是当前最新的值。
printf("The %d day have %d:\n",i,k);
}
}
 
继续关注我的java博客