1.统计成绩
解题思路:
这里我们设置两个变量记录最大值和最小值,再用一个sum统计分数总和即可。
解题代码:
#include<stdio.h>
int main()
{int n = 0;scanf("%d", &n);double arr[100] = { 0 };int i = 0;//最高分double max = 0;//最低分double min = 100.0;//总分double sum = 0;for (i = 0; i < n; i++){scanf("%lf", &arr[i]);sum += arr[i];}//最高分判断for (i = 0; i < n; i++){if (arr[i] > max)max = arr[i];if (arr[i] < min)min = arr[i];}printf("%.2lf %.2lf %.2lf", max, min, sum / n);return 0;
}
2.密码验证
解题思路:
这里我们输入两个字符串,在使用库函数strcmp比较即可。
解题代码:
#include<stdio.h>
#include<string.h>
int main()
{char arr1[100] = { 0 };scanf("%s", &arr1);char arr2[100] = { 0 };scanf("%s", &arr2);if (strcmp(arr1, arr2) == 0)printf("same");elseprintf("different");return 0;
}
3.矩阵计算
解题思路:
这里使用一个二维数组,输入完一判断即可。
解题代码:
#include<stdio.h>
int main()
{int n = 0;int m = 0;scanf("%d %d", &n, &m);int arr[10][10] = { 0 };int i = 0;int sum = 0;for (i = 0; i < n; i++){int j = 0;for (j = 0; j < m; j++){scanf("%d", &arr[i][j]);if (arr[i][j] > 0){sum += arr[i][j];}}}printf("%d", sum);return 0;
}
4.逆序输出
解题思路:
这里只需要逆序输出,不需要关心大小,我们先把数据存到一个数组里,再倒着拿出来即可。
解题代码:
#include<stdio.h>
int main()
{int arr[10] = { 0 };int i = 0;for (i = 0; i < 10; i++){scanf("%d", &arr[i]);}for (i = 9; i >= 0; i--){printf("%d ", arr[i]);}return 0;
}
5.统计数据正负个数
解题思路:
我们先把数据存储到数组里面,再判断,用计数器计数。
解题代码:
#include<stdio.h>
int main()
{int arr[10] = { 0 };int i = 0;//统计正数int pos = 0;//统计负数int neg = 0;for (i = 0; i < 10;i++){scanf("%d", &arr[i]);if (arr[i] > 0)pos++;elseneg++;}printf("positive:%d\nnegative:%d\n", pos, neg);return 0;
}
6.N个数之和
解题思路:
我们只需要把数据累计加起来就行。
解题代码:
#include<stdio.h>
int main()
{int n = 0;scanf("%d", &n);int i = 0;int ret=0;int sum = 0;for (i = 0; i < n; i++){scanf("%d", &ret);sum += ret;}printf("%d", sum);return 0;
}
7.最高分与最低分之差
解题思路之冒泡排序的方法:
我们输入数据到数组里面后,使用冒泡排序让他从小大大排序,再用数组最后一个数据减去第一个数据即可。
解题代码之冒泡排序的方法:
#include<stdio.h>int main()
{int n = 0;scanf("%d", &n);int arr[100] = { 0 };int i = 0;for (i = 0; i < n; i++){scanf("%d", &arr[i]);}//从小到大排序for (i = 0; i < n - 1; i++){int j = 0;for (j = 0; j < n-i-1; j++){if (arr[j] > arr[j + 1]){int tmp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = tmp;}}}printf("%d", arr[n - 1] - arr[0]);return 0;
}
解题思路之对比法:
我们先把数据存到数组里面,再定义一个最大值和最小值,替换掉,等循环结束,里面就是最大值和最小值。
解题代码之对比法:
#include<stdio.h>
int main()
{int n = 0;scanf("%d", &n);int max = 0;int min = 100;int arr[1000] = { 0 };int i = 0;for (i = 0; i < n; i++){scanf("%d", &arr[i]);}for (i = 0; i < n; i++){if (arr[i] > max)max = arr[i];if(arr[i]<min)min = arr[i];}printf("%d", max - min);return 0;
}//普通循环法#include<stdio.h>
int main()
{int n = 0;scanf("%d", &n);int i = 0;int ret = 0;//最大数int D = 0;//最小数int X = 100;for (i = 0; i < n; i++){scanf("%d", &ret);if (ret > D)D = ret;if(ret<X)X = ret;}printf("%d", D - X);return 0;
}