五、计算题或案例分析题或其它题 1.写一个程序求一个整数从右边数起的第K位数字。 2. 用改进的冒泡法将20个数进行排序。 3.编写程序求1+2+3+。。。。+100的的和
1.写一个程序求一个整数从右边数起的第K位数字。
int n, k, i;
scanf("%d%d", &n, &k);
for (i = 1; i < k; ++i)
n /= 10;
printf("The %dth digit is: %d\n", k, n % 10);
2. 用改进的冒泡法将20个数进行排序。
请详述改进的冒泡法。
3.编写程序求1+2+3+。。。。+100的的和
printf("%d\n"", 5050);
2的改进冒泡不知道具体怎么改进的。1和3代码如下,如有帮助,请采纳一下,谢谢。
#include <stdio.h>
//冒泡排序
void bubbleSort (int arr[], int len)
{
int temp;
int i, j;
for (i=0; i<len-1; i++) /* 外循环为排序趟数,len个数进行len-1趟 */
for (j=0; j<len-1-i; j++) { /* 内循环为每趟比较的次数,第i趟比较len-i次 */
if (arr[j] > arr[j+1]) { /* 相邻元素比较,若逆序则交换(升序为左大于右,降序反之) */
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
int main()
{
//1.
printf("请输入整数N和k的值:");
int n,k;
scanf("%d %d",&n,&k);
for (int i = 1; i < k; i++)
{
n = n / 10;
}
int v = n % 10;
printf("%d的从右侧起第k位数是%d\n",n,v);
//2.冒泡排序
int a[100] = {0};
printf("请输入排序数组的大小:");
scanf("%d",&n);
printf("请输入%d个数:",n);
for (int i = 0; i < n; i++)
{
scanf("%d",&a[i]);
}
//冒泡排序
bubbleSort(a,n);
printf("排序后的数组:\n");
for (int i = 0; i < n; i++)
{
printf("%d ",a[i]);
}
printf("\n");
//3.
int sum = 0;
for (int i = 1; i <= 100; i++)
{
sum += i;
}
printf("1+2+3+...+100=%d\n",sum);
getchar();
getchar();
return 0;
}