1.键盘录入一组数列,利用冒泡排序将数据由大到小排序
/*************************************************************************
> File Name: demo01.c
> Author: 阮
> Description:
> Created Time:
************************************************************************/
#include
int main(int argc,char *argv[])
{
// 创建一个数组,用来存放冒泡排序的数列
int arr[10];
//循环变量和临时变量
int i,j,temp,desc = 1;
printf("请输入10个整数:\n");
//计算数组的大小
int len = sizeof(arr) / sizeof(arr[0]);
//控制台输入10个数字
for (i= 0;i < len; i++)scanf("%d",&arr[i]);//&arr[i]: []的优先级高于&
printf("\n排序前:");
for (i = 0;i < len ;i++)printf("%-4d",arr[i]);
printf("\n");
//冒泡排序
//外层循环:实现排序轮数的遍历:轮数=数组大小 - 1
for ( i = 0;i arr[j+1])
if (desc)
{
if(arr[j] < arr[j+1])
{
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
flag = 1;
}
}
else
{
//升序
if(arr[j] > arr[j+1])
{
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
flag = 1;
}
}
}
if (!flag) break; //1,2,3
}
printf("\n排序后:");
for(i = 0; i < len; i++) printf("%-4d",arr[i]);
printf("\n");
return 0;
}

2.从键盘输入年、月、日,计算并输出该日是该年第几天
/*************************************************************************
> File Name: demo02.c
> Author: 阮
> Description:
> Created Time:
************************************************************************/
#include
int main(int argc,char *argv[])
{
int t[] = {31,28,31,30,31,30,31,31,30,31,30,31};
int year,month,day;
printf("请输入年,月,日(yyyy-mm-dd):");
scanf("%d-%d-%d",&year,&month,&day);
if (year %4 ==0 && year % 100 != 0 || year % 400 == 0)t[1] = 29;
int sum = day;
for(int i = 0;i < month - 1; i++) sum += t[i];
printf("%d月%d日是%d年的第%d天\n",month,day,year,sum);
return 0;
}

3.键盘录入一组数列,求最大数、最小数、均值
/*************************************************************************
> File Name: demo03.c
> Author: 阮
> Description: 三个数的最大最小平均值
> Created Time:
************************************************************************/
#include
int main(int argc,char *argv[])
{
int len;
printf("请输入数组长度:\n");
scanf("%d",&len);
int a[len];
int i,j,max = -9999,min = 9999,sum = 0;
len = sizeof(a) / sizeof(a[0]);
printf("请输入%d个数字",len);
for(i=0;i max) max=a[i];
if( a[i] < min) min=a[i];
sum+=a[i];
}
printf("最大值是%d,最小值是%d,平均值是%d\n",max,min,sum/=len);
return 0;
}

4.从键盘录入一组数列,判断是否是回文,举例:12321,abba,121
/*************************************************************************
> File Name: demo04.c
> Author: 阮
> Description: 判断回文数
> Created Time:
************************************************************************/
#include
int main(int argc,char *argv[])
{
int len , i ; //确定数组大小。
printf ("请输入数组长度:\n");
scanf("%d",&len);
char a[len];
//给数组输入元素
printf("给数组输入%d元素:\n",len);
while(getchar() != '\n');
for(i = 0;i < len ;i++) scanf("%c",&a[i]);
len = sizeof(a) / sizeof(a[0]);
// 判断是否是回文数
int flag = 1;
for(i = 0;i < len / 2;i++)
{
if(a[i] != a[len - i - 1])
{
flag = 0;
break;
}
}
// 是,不是
if(flag) printf("是回文数\n");
else printf("不是回文数\n");
return 0;
}

5.用数组存储10个整型数,通过键盘输入一个数,找出该数在数组中的下标值
/*************************************************************************
> File Name: demo05.c
> Author: 阮
> Description:
> Created Time:
************************************************************************/
#include
int main(int argc,char *argv[])
{
int arr[10]; // 创建长度为10的数组
int pr,i,index = -1; //pr:需要查找的数 //index = -1 初始化下标变量
printf("请输入10个数:\n");
for(i = 0; i < 10;i++)
{
scanf("%d",&arr[i]);
}
//请输入要查找的数
printf("请输入要查找的数:\n");
scanf("%d",&pr);
//遍历数组查找目标数
for(i = 0;i < 10;i++)
{
if(arr[i] == pr)
{
index = i;
break;
}
}
//输出结果
if(index != -1)
{
printf("该数在数组中的下标是:%d\n",index);
}
else
{
printf("这个数不再数组中\n");
}
return 0;
}

6.通过键盘输入 10 个学员成绩: 1)输出不及格学员的成绩和下标。 2)求最高分的下标值 3)求最低成绩的下标值 4)求总成绩及平均成绩
/*************************************************************************
> File Name: demo06.c
> Author: 阮
> Description:
> Created Time:
************************************************************************/
#include
int main()
{
float arr[10];
int i;
float total = 0; //总成绩
float average; //平均值
int maxIndex = 0;
int minIndex = 0;
printf("请输入10个学员成绩:\n");
for(i = 0;i < 10;i++)
{
scanf("%f",&arr[i]);
total += arr[i]; //总成绩
//计算最高分下标
if(arr[i] > arr[maxIndex])
{
maxIndex = i;
}
//计算最低分下标
if(arr[i] < arr[minIndex])
{
minIndex = i;
}
}
//计算平均
average = total / 10;
//输出不及格学员成绩
printf("不及格学员成绩下标:\n");
for(i=0;i<10;i++)
{
if(arr[i] < 60)
{
printf("%d下标,成绩%.2f\n",i,arr[i]);
}
}
printf("最高分下标:%d\n",maxIndex);
printf("最低分下标:%d\n",minIndex);
printf("总成绩:%.2f,平均成绩:%.2f\n",total,average);
return 0;
}
