1.输出所有大于平均值的数:输入n个整数(1<=n<=10),计算这些数的平均值,再输出所有大于平均值的数
#include<stdio.h>
int main() {
int i,n,sum;
double average;
int a[10];
printf("enter n:");
scanf("%d", &n);
if (n < 1 || n>10) {
printf("wrong");
}
else if (n >= 1 && n <= 10) {
printf("enter %d integers:", n);
for (i = 1; i < n; i++) {
scanf("%d", &a[i]);
}
sum = 0;
for (i = 1; i < n; i++) {
sum = sum + a[i];
}
average = sum / n;
printf("average=%lf\n", average);
printf(">average:");
for (i = 0; i < n; i++) {
if (a[i] > average) {
printf("%d", a[i]);
}
}
}
return 0;
}
2.利用数组计算斐波那契数列:利用数组计算斐波那契数列的前n个数(1<=n<=46),即1,2,3,5,8,……,并按每行打印5个数的格式输出,如果最后一行的输出也少于5个数,也需要换行
#include<stdio.h>
#define MAXN 46
int main() {
int i,n;
int fib[MAXN] = { 1,1 };
printf("enter n:");
scanf("%d", &n);
if (n < 1 || n>46) {
printf("wrong");
}
else if (n >= 1 && n <= 46) {
for(i=2;i<n;i++){
fib[i] = fib[i - 1] + fib[i - 2];
}
for (i = 0; i < n; i++) {
printf("%d", fib[i]);
if ((i + 1) % 5 == 0) {
printf("\n");
}
}
if (n % 51 != 0) {
printf("\n");
}
}
return 0;
}
3.查找满足条件的所有数--顺序查找法。输入正整数n(1<=n<=10)和整数x,再输入n个整数并存入数组a中,然后在数组a中查找给定的x。如果数组a中的元素与x的值相同,输出所有满足条件的元素的下标(下标从0开始);如果没有找到,输出“not found”
#include<stdio.h>
#define maxn 10
int main() {
int n,x,i,flag;
int a[maxn];
printf("enter n:");
scanf("%d", &n);
printf("enter x:");
scanf("%d", &x);
if (n < 1 || n>10) {
printf("wrong");
}
else if (n >= 1 && n <= 10) {
flag = 0;
printf("enter numbers:");
for (i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
for (i = 0; i < n; i++) {
if (a[i] == x) {
printf("%d", i);
flag = 1;
}
}
if (flag == 0) {
printf("not found");
}
}
return 0;
}
4.选择法排序:输入一个正整数n(1<=n<=10),再输入n个整数,用选择法将他们从小到大排序后输出
#include<stdio.h>
#define maxn 10
int main() {
int n,i,k,index,temp;
int a[maxn];
printf("enter n:");
scanf("%d", &n);
if (n < 1 || n>10) {
printf("wrong");
}
else if (n >= 1 && n <= 10)
{
printf("enter numbers:");
for (i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
/*对n个数进行选择排序*/
for (k = 0; k < n - 1; k++) /*对于选择排序,n个数要排n-1轮,k从0开始,则k最大取n-2*/
{
index = k;/*index存放最小值的下标*/
for (i = k + 1; i < n; i++)/*寻找最小值的下标*/
{
if (a[i] < a[index]) {
index = i;
}
}
temp = a[index];/*最小元素与下标为K的元素交换,k其实就是第k+1轮,a[k]是原数列中第k+1个数*/
a[index] = a[k];
a[k] = temp;
}
printf("after sorted:");
for (i = 0; i < n; i++) {
printf("%d", a[i]);/*输出包含n个元素的数组*/
}
}
return 0;
}
(用家主大人的美貌激励自己)