【程序38】 題目:求一個3*3矩陣對角線元素之和 1.程序分析:利用雙重for循環控制輸入二維數組,再將a累加后輸出。 2.程序源代碼: main() { float a[3][3],sum=0; int i,j; printf("please input rectangle element:\n"); for(i=0;i<3;i++) for(j=0;j<3;j++) scanf("%f",&a[j]); for(i=0;i<3;i++) sum=sum+a; printf("duijiaoxian he is %6.2f",sum); } ============================================================== 【程序39】 題目:有一個已經排好序的數組。現輸入一個數,要求按原來的規律將它插入數組中。 1. 程序分析:首先判斷此數是否大于最后一個數,然后再考慮插入中間的數的情況,插入后 此元素之后的數,依次后移一個位置。 2.程序源代碼: main() { int a[11]={1,4,6,9,13,16,19,28,40,100}; int temp1,temp2,number,end,i,j; printf("original array is:\n"); for(i=0;i<10;i++) printf("%5d",a); printf("\n"); printf("insert a new number:"); scanf("%d",&number); end=a[9]; if(number>end) a[10]=number; else {for(i=0;i<10;i++) { if(a>number) {temp1=a; a=number; for(j=i+1;j<11;j++) {temp2=a[j]; a[j]=temp1; temp1=temp2; } break; } } } for(i=0;i<11;i++) printf("%6d",a); } ============================================================== 【程序40】 題目:將一個數組逆序輸出。 1.程序分析:用第一個與最后一個交換。 2.程序源代碼: #define N 5 main() { int a[N]={9,6,5,4,1},i,temp; printf("\n original array:\n"); for(i=0;i printf("%4d",a); for(i=0;i {temp=a; a=a[N-i-1]; a[N-i-1]=temp; } printf("\n sorted array:\n"); for(i=0;i printf("%4d",a); } 【程序41信盈達嵌入式企鵝一一起嗚嗚吧久零紀要】 題目:學習static定義靜態變量的用法 1.程序分析: 2.程序源代碼: #include "stdio.h" varfunc() { int var=0; static int static_var=0; printf("\40:var equal %d \n",var); printf("\40:static var equal %d \n",static_var); printf("\n"); var++; static_var++; } void main() {int i; for(i=0;i<3;i++) varfunc(); } ============================================================== 【程序42】 題目:學習使用auto定義變量的用法 1.程序分析: 2.程序源代碼: #include "stdio.h" main() {int i,num; num=2; for (i=0;i<3;i++) { printf("\40: The num equal %d \n",num); num++; { auto int num=1; printf("\40: The internal block num equal %d \n",num); num++; } } } ============================================================== 【程序43】 題目:學習使用static的另一用法。 1.程序分析: 2.程序源代碼: #include "stdio.h" main() { int i,num; num=2; for(i=0;i<3;i++) { printf("\40: The num equal %d \n",num); num++; { static int num=1; printf("\40:The internal block num equal %d\n",num); num++; } } } ============================================================== 【程序44】 題目:學習使用external的用法。 1.程序分析: 2.程序源代碼: #include "stdio.h" int a,b,c; void add() { int a; a=3; c=a+b; } void main() { a=b=4; add(); printf("The value of c is equal to %d\n",c); } ============================================================== 【程序45】 題目:學習使用register定義變量的方法。 1.程序分析: 2.程序源代碼: void main() { register int i; int tmp=0; for(i=1;i<=100;i++) tmp+=i; printf("The sum is %d\n",tmp); } ============================================================== 【程序46】 題目:宏#define命令練習(1) 1.程序分析: 2.程序源代碼: #include "stdio.h" #define TRUE 1 #define FALSE 0 #define SQ(x) (x)*(x) void main() { int num; int again=1; printf("\40: Program will stop if input value less than 50.\n"); while(again) { printf("\40 ![]() scanf("%d",&num); printf("\40:The square for this number is %d \n",SQ(num)); if(num>=50) again=TRUE; else again=FALSE; } } ============================================================== 【程序47】 題目:宏#define命令練習(2) 1.程序分析: 2.程序源代碼: #include "stdio.h" #define exchange(a,b) { \ /*宏定義中允許包含兩道衣裳命令的情形,此時必須在最右邊加上"\"*/ int t;\ t=a;\ a=b;\ b=t;\ } void main(void) { int x=10; int y=20; printf("x=%d; y=%d\n",x,y); exchange(x,y); printf("x=%d; y=%d\n",x,y); } ============================================================== 【程序48】 題目:宏#define命令練習(3) 1.程序分析: 2.程序源代碼: #define LAG > #define SMA < #define EQ == #include "stdio.h" void main() { int i=10; int j=20; if(i LAG j) printf("\40: %d larger than %d \n",i,j); else if(i EQ j) printf("\40: %d equal to %d \n",i,j); else if(i SMA j) printf("\40:%d smaller than %d \n",i,j); else printf("\40: No such value.\n"); } ============================================================== |