1.定义一个int类型的数组,长度为10
从终端给数组元素赋值
找出数组中最大值,以及最大值的下标,并输出
#include <stdio.h> int main(){ int s[10] = {0}; //循环给数组赋值 int i = 0; for(i = 0; i < 10; i++){ scanf("%d", &s[i]); } int max_index = 0;//最大值的下标 for(i = 1; i < 10; i++){ if(s[i] > s[max_index]){ max_index = i; } } //循环结束时 max_index 中就是最大值的下标 //找到最大值的下标了 也就找到最大值了 printf("max_index = %d, max_value = %d\n", max_index, s[max_index]); return 0; }
2. 斐波那契数列:
1 1 2 3 5 8 13 ....
定义一个20个长度的数组,保存斐波那契数列的前20位,并输出。
#include <stdio.h> int main(){ int s[20] = {1,1}; int i = 0; //循环给数组赋值 注意不要越界!!! for(i = 2; i < 20; i++){ s[i] = s[i-1] + s[i-2]; } //遍历数组输出 for(i = 0; i < 20; i++){ printf("%d ", s[i]); } printf("\n"); return 0; }
3.冒泡排序(升序)
#include <stdio.h> int main(){ int s[10] = {12, 34, 56, 5, 14, 98, 60, 68, 70, 17}; int len = sizeof(s)/sizeof(s[0]); //排序前 int i = 0; int j = 0; int temp = 0; for(i = 0; i < 10; i++){ printf("%d ", s[i]); } printf("\n"); //外层循环控制排序的趟数 for(j = 0; j < len-1; j++){//此处的-1是因为最后一趟 //只剩下一个元素了 无需再排序了 //内层循环控制一趟排序 for(i = 0; i < len-1-j; i++){//此处的-1是防止越界的 //-j 是因为每趟都可以有一个元素不用参与比较了 if(s[i] > s[i+1]){//如果是降序 只需将此处的 > 改成 < 即可 //交换 temp = s[i]; s[i] = s[i+1]; s[i+1] = temp; } } } //排序后 i = 0; for(i = 0; i < 10; i++){ printf("%d ", s[i]); } printf("\n"); return 0; }