- 键盘录入一组数列,利用冒泡排序将数据由大到小排序
#include <stdio.h>
int main(int argc,char *argv[])
{
int i,j,tmep;
int arr[10];
printf("请输入10个测试整数:\n");
int len=sizeof(arr)/sizeof(arr[0]);
for(i=0;i<len;i++)
{
scanf("%d",&arr[i]);
}
printf("\n");
for(i=0;i<len-1;i++)
{
for(j=0;j<len-1-i;j++)
{
if(arr[j]>arr[j+1])
{
tmep=arr[j];
arr[j]=arr[j+1];
arr[j+1]=tmep;
}
}
}
printf("冒泡排序后续数组\n");
for(i=0;i<len;i++)
{
printf("%-4d",arr[i]);
}
printf("\n");
return 0;
}
2. 从键盘输入年、月、日,计算并输出该日是该年第几天
#include <stdio.h>
int main(int argc,char *argv[])
{
int year,month,day,sum,k;
int t[]={31,28,31,30,31,30,31,31,30,31,30,31};
printf("请输入年月日:(使用-分割)\n");
scanf("%d-%d-%d",&year,&month,&day);
if((year%4==0&&year%100!=0)||year%400==0)
{
t[1]=29;
}
sum=day;
for(k=0;k<month-1;k++)
{
sum+=t[k];
}
printf("%d月%d日是%d年的第%d天\n",month,day,year,sum);
return 0;
}
3. 键盘录入一组数列,求最大数、最小数、均值
#include <stdio.h>
int main(int argc,char *argv[])
{
int arr[10],i,sum=0,tmep,j;
int len=sizeof(arr)/sizeof(arr[0]);
for(i=0;i<len;i++)
{
scanf("%d",&arr[i]);
}
for(i=0;i<len-1;i++)
{
for(j=0;j<len-1-i;j++)
{
if(arr[j]>arr[j+1])
{
tmep=arr[j];
arr[j]=arr[j+1];
arr[j+1]=tmep;
}
}
}
for(i=0;i<len;i++)
{
sum+=arr[i];
}
printf("最大%d,最小%d,平均%lf\n",arr[9],arr[0],sum/10.0);
return 0;
}
4. 从键盘录入一组数列,判断是否是回文,举例:12321,abba,121
#include <stdio.h>
int isPalindrome(char arr[], int length) {
int left = 0;
int right = length - 1;
while (left < right) {
if (arr[left] != arr[right]) {
return 0; // 不是回文
}
left++;
right--;
}
return 1; // 是回文
}
int main() {
char arr[100]; // 假设输入字符串的最大长度为99(留一个位置给'\0')
printf("请输入一个字符串(不含空格):\n");
scanf("%99s", arr); // 读取最多99个字符的字符串,防止溢出
// 计算字符串的实际长度(不使用strlen,因为题目要求不使用<string.h>)
int length = 0;
while (arr[length] != '\0') {
length++;
}
// 判断是否是回文
if (isPalindrome(arr, length)) {
printf("输入的字符串是回文。\n");
} else {
printf("输入的字符串不是回文。\n");
}
return 0;
}
5. 用数组存储10个整型数,通过键盘输入一个数,找出该数在数组中的下标值
#include <stdio.h>
int main(int argc, char *argv[])
{
int arr[10]; // 定义一个一维数组来存储10个整型数
int searchNum; // 定义变量来存储用户要查找的数
int found = -1; // 定义变量来标记是否找到数,初始化为-1表示未找到
// 输入10个整型数到数组中
printf("请输入10个整型数:\n");
for (int i = 0; i < 10; i++)
{
scanf("%d", &arr[i]);
}
// 输入要查找的数
printf("请输入要查找的数:\n");
scanf("%d", &searchNum);
// 查找该数在数组中的下标
for (int i = 0; i < 10; i++)
{
if (arr[i] == searchNum)
{
found = i; // 找到数,记录下标
break; // 退出循环,因为已经找到
}
}
// 输出结果
if (found != -1)
{
printf("数 %d 在数组中的下标是 %d。\n", searchNum, found);
}
else
{
printf("数 %d 不在数组中。\n", searchNum);
}
return 0;
}
6. 通过键盘输入 10 个学员成绩,
1)输出不及格学员的成绩和下标。
2)求最高分的下标值
3)求最低成绩的下标值
4)求总成绩及平均成绩
#include <stdio.h>
int main(int argc, char *argv[])
{
int scores[10]; // 定义一维数组存储10个学员成绩
int i;
// 输入10个学员成绩
printf("请输入10个学员的成绩:\n");
for (i = 0; i < 10; i++)
{
scanf("%d", &scores[i]);
}
// 1)输出不及格学员的成绩和下标(假设不及格分数为60以下)
printf("不及格学员的成绩和下标:\n");
for (i = 0; i < 10; i++)
{
if (scores[i] < 60)
{
printf("下标 %d,成绩 %d\n", i, scores[i]);
}
}
// 2)求最高分的下标值,最低分下标值
int maxIndex = 0;
int minIndex = 0;
for (i = 1; i < 10; i++)
{
if (scores[i] > scores[maxIndex])
{
maxIndex = i;
}
if (scores[i] < scores[minIndex])
{
minIndex = i;
}
}
printf("最高分的下标值是 %d,最高分是 %d\n", maxIndex, scores[maxIndex]);
printf("最低成绩的下标值是 %d,最低成绩是 %d\n", minIndex, scores[minIndex]);
// 4)求总成绩及平均成绩
int totalScore = 0;
for (i = 0; i < 10; i++)
{
totalScore += scores[i];
}
float averageScore = totalScore / 10.0; // 注意要除以10.0以得到浮点数结果
printf("总成绩是 %d,平均成绩是 %.2f\n", totalScore, averageScore);
return 0;
}