| 題目:將一個數組逆序輸出。 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<N;i++) printf("%4d",a[i]); for(i=0;i<N/2;i++) {temp=a[i]; a[i]=a[N-i-1]; a[N-i-1]=temp; } printf("\n sorted array:\n"); for(i=0;i<N;i++) printf("%4d",a[i]); } |
| 題目:有一個已經排好序的數組。現輸入一個數,要求按原來的規律將它插入數組中。 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[i]); 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[i]>number) {temp1=a[i]; a[i]=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[i]); } |
| 題目:求一個3*3矩陣對角線元素之和 1.程序分析:利用雙重for循環控制輸入二維數組,再將a[i][i]累加后輸出。 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[i][j]); for(i=0;i<3;i++) sum=sum+a[i][i]; printf("duijiaoxian he is %6.2f",sum); } |
題目:對10個數進行排序
1.程序分析:可以利用選擇法,即從后9個比較過程中,選擇一個最小的與第一個元素交換,
下次類推,即用第二個元素與后8個進行比較,并進行交換。
2.程序源代碼:
#define N 10
main()
{int i,j,min,tem,a[N];
/*input data*/
printf("please input ten num:\n");
for(i=0;i<N;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);}
printf("\n");
for(i=0;i<N;i++)
printf("%5d",a[i]);
printf("\n");
/*sort ten num*/
for(i=0;i<N-1;i++)
{min=i;
for(j=i+1;j<N;j++)
if(a[min]>a[j]) min=j;
tem=a[i];
a[i]=a[min];
a[min]=tem;
}
/*output data*/
printf("After sorted \n");
for(i=0;i<N;i++)
printf("%5d",a[i]);
}
| 題目:求100之內的素數 1.程序分析: 2.程序源代碼: #i nclude <stdio.h> #i nclude "math.h" #define N 101 main() { int i,j,line,a[N]; for(i=2;i<N;i++) a[i]=i; for(i=2;i<sqrt(N);i++) for(j=i+1;j<N;j++) { if(a[i]!=0&&a[j]!=0) if(a[j]%a[i]==0) a[j]=0;} printf("\n"); for(i=2,line=0;i<N;i++) { if(a[i]!=0) {printf("%5d",a[i]); line++;} if(line==10) {printf("\n"); line=0;} } } |





