re: 課堂例題下載 linlin2005 2006-03-27 22:06
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: 考試模擬題下載 linlin2005 2006-03-15 12:45
re: 考試模擬題下載 linlin2005 2006-03-15 12:43
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);
}
}