目录
7-225 sdut-C语言实验- 冒泡排序中数据交换的次数
7-223 sdut-C语言实验-求阶乘(循环结构)
分数 12
全屏浏览题目
切换布局
作者 马新娟
单位 山东理工大学
从键盘输入任意一个大于等于0的整数n,然后计算n的阶乘,并把它输出。
提示: 0!是 1 。
输入格式:
输入任意一个大于等于0的整数n。
输出格式:
输出n!
输入样例:
在这里给出一组输入。例如:
3
输出样例:
在这里给出相应的输出。例如:
6
#include <stdio.h>
int main(){
int n,i,sum=1;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
sum=sum*i;
}
printf("%d",sum);
return 0;
}
7-224 sdut-C语言实验-排序问题
分数 15
全屏浏览题目
切换布局
作者 马新娟
单位 山东理工大学
输入10个整数,将它们从小到大排序后输出,并给出现在每个元素在原来序列中的位置。
输入格式:
输入数据有一行,包含10个整数,用空格分开。
输出格式:
输出数据有两行,第一行为排序后的序列,第二行为排序后各个元素在原来序列中的位置。
输入样例:
1 2 3 5 4 6 8 9 10 7
输出样例:
在这里给出相应的输出。例如:
1 2 3 4 5 6 7 8 9 10
1 2 3 5 4 6 10 7 8 9
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a[10],b[10]={1,2,3,4,5,6,7,8,9,10};
int i,j;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++)
{
for(j=0;j<9-i;j++)
if(a[j]>a[j+1])
{
int t=a[j];
a[j]=a[j+1];
a[j+1]=t;
t=b[j];
b[j]=b[j+1];
b[j+1]=t;
}
}
for(i=0;i<10;i++)
{
if(i==9)
printf("%d\n",a[i]);
else
printf("%d ",a[i]);
}
for(i=0;i<10;i++)
{
if(i==9)
printf("%d\n",b[i]);
else
printf("%d ",b[i]);
}
return 0;
}
7-225 sdut-C语言实验- 冒泡排序中数据交换的次数
分数 15
全屏浏览题目
切换布局
作者 马新娟
单位 山东理工大学
听说过冒泡排序么?一种很暴力的排序方法。今天我们不希望你用它来排序,而是希望你能算出从小到大冒泡排序的过程中一共进行了多少次数据交换。
输入格式:
输入数据的第一行为一个正整数 T ,表示有 T 组测试数据。
接下来T行,每行第一个整数N, 然后有N个整数,无序。0<N <= 100
输出格式:
输出共 T 行。
每行一个整数,代表本行数据从小到大冒泡排序所进行的交换次数
输入样例:
在这里给出一组输入。例如:
3
5 1 2 3 4 5
4 5 3 7 1
2 2 1
输出样例:
在这里给出相应的输出。例如:
0
4
1
#include<stdio.h>
int main()
{
int a[100];
int t;
int n;
int i,j,temp;
int count;
scanf("%d",&t);
while(t--)
{
count = 0;
scanf("%d",&n);
for(i = 0; i < n; i++)
{
scanf("%d",&a[i]);
}
for(i = 0; i < n - 1; i++)
{
for(j = 0; j < n - 1 - i; j++)
{
if(a[j] > a[j+1])
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
count++;
}
}
}
printf("%d\n",count);
}
return 0;
}