標籤:blog 技術分享 之間 http img 組元 .com bre 最大
1.求一個數組中最值和最值所在數組中的下標。
程式如下:
#include<stdio.h>#pragma warning(disable:4996);//在VS中編譯時間由於使用了scanf函數警告不安全,無法通過,此語句是為了消除這個警告int main(){int a[5];int max,min;int index1,index2;printf("請輸入數組元素值:");for (int j= 0; j<5; j++){scanf("%d",&a[j]);}max = a[0];min = a[0];index1 = 0;index2 = 0;for (int i = 1; i < 5; i++){//找出最大值及最大值下標if (max < a[i]){max = a[i];index1 = i;}//找出最小值及最小值下標if (min>a[i]){min = a[i];index2 = i;}}printf("最大值為:%d\n", max);printf("最大值下標為:%d\n", index1);printf("最小值為:%d\n", min);printf("最小值下標為:%d\n", index2); return 0;}
運行結果:
2.數組逆置問題
#include<stdio.h>#pragma warning(disable:4996);int main(){int a[5];int max=4,min=0;printf("請輸入數組元素值:");for (int j= 0; j<5; j++){scanf("%d",&a[j]);}while (max > min)//使用while迴圈{int t;t = a[min];a[min] = a[max];a[max] = t;max--;min++;}printf("數組逆置後為:");for (int i = 0; i < 5; i++){printf("%d", a[i]);}printf("\n"); return 0;}
或者也可以採用以下代碼實現:
#include<stdio.h>#pragma warning(disable:4996);int main(){int a[5];printf("請輸入數組元素值:");for (int j= 0; j<5; j++){scanf("%d",&a[j]);}for(int i=0;i<2;i++){int t;t = a[i];a[i] = a[4-i];a[4-i] = t;}printf("數組逆置後為:");for (int i = 0; i < 5; i++){printf("%d", a[i]);}printf("\n"); return 0;}
運行結果:
3.水仙花數問題
描述:若一個n位元的數值等於每一位上數位n次方之和,則這個數為水仙花數。
如:153=1*1*1+5*5*5+3*3*3
問題:求100到999之間的所有水仙花數。
代碼實現:
#include<stdio.h>#pragma warning(disable:4996);int main(){int n1, n2, n3;printf("100至999之間的水仙花數為:\n");for (int num = 100; num < 1000; num++){n1 = num / 100;//得到百位上的數字n2 = (num % 100) / 10;//得到十位上的數字n3 = num - n1 * 100 - n2 * 10;//得到個位上的數字if ((n1*n1*n1 + n2*n2*n2 + n3*n3*n3) == num){printf("%d ",num);}}printf("\n");return 0;}
運行結果:
4.求3到100之間的所有素數(除了1和自身外不能被其他整數整除的整數)
代碼實現:
#include<stdio.h>#pragma warning(disable:4996);int main(){printf("3至100之間的素數為:\n");for (int num = 3; num < 100; num++){int flag = 0;//素數標誌for (int i = 2; i < num; i++){if ((num%i)== 0)//說明不是素數flag = 1;break;}if (flag == 0){printf("%d ", num);}}printf("\n");return 0;}
運行結果:
C語言複習——一維數組部分程式