c语言编写程序, 输入三位数N,找出100-N之间所有的升序数. 所 谓升序数, 是指其个位数大于十位数 且十位数又大于百位数的数 . 例加 275就是一个升序药.
时间: 2023-06-02 07:02:45 浏览: 182
```c
#include <stdio.h>
int main() {
int N;
printf("请输入三位数N:");
scanf("%d", &N);
printf("100-%d之间的所有升序数为:\n", N);
for(int i = 100; i <= 100 - N; i++) {
int a = i % 10; // 个位数
int b = i / 10 % 10; // 十位数
int c = i / 100; // 百位数
if(a > b && b > c) {
printf("%d ", i);
}
}
return 0;
}
```
相关问题
c语言编写两个程序分别用来求逆序数和判定序数
1. 求逆序数的程序:
```c
#include <stdio.h>
int merge(int arr[], int temp[], int left, int mid, int right) {
int i, j, k;
int count = 0;
i = left;
j = mid;
k = left;
while ((i <= mid - 1) && (j <= right)) {
if (arr[i] <= arr[j]) {
temp[k++] = arr[i++];
} else {
temp[k++] = arr[j++];
count += (mid - i);
}
}
while (i <= mid - 1) {
temp[k++] = arr[i++];
}
while (j <= right) {
temp[k++] = arr[j++];
}
for (i = left; i <= right; i++) {
arr[i] = temp[i];
}
return count;
}
int mergeSort(int arr[], int temp[], int left, int right) {
int mid, count = 0;
if (right > left) {
mid = (right + left) / 2;
count = mergeSort(arr, temp, left, mid);
count += mergeSort(arr, temp, mid + 1, right);
count += merge(arr, temp, left, mid + 1, right);
}
return count;
}
int getInvCount(int arr[], int n) {
int temp[n];
return mergeSort(arr, temp, 0, n - 1);
}
int main() {
int arr[] = {1, 20, 6, 4, 5};
int n = sizeof(arr) / sizeof(arr[0]);
printf("逆序数为 %d", getInvCount(arr, n));
return 0;
}
```
2. 判断序列是否有序的程序:
```c
#include <stdio.h>
int isSorted(int arr[], int n) {
int i;
for (i = 1; i < n; i++) {
if (arr[i] < arr[i - 1]) {
return 0;
}
}
return 1;
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = sizeof(arr) / sizeof(arr[0]);
if (isSorted(arr, n)) {
printf("该序列有序\n");
} else {
printf("该序列无序\n");
}
return 0;
}
```
用C语言写一个代码输入一个正整数n,输出其反序数
好的,以下是用C语言写的代码:
```c
#include <stdio.h>
int main()
{
int n, reverseNum = 0;
printf("请输入一个正整数n:");
scanf("%d", &n);
while (n > 0)
{
reverseNum = reverseNum * 10 + n % 10;
n /= 10;
}
printf("反序数为:%d\n", reverseNum);
return 0;
}
```
这个程序会先要求用户输入一个正整数n,然后通过循环将n的每一位取出来并组合成反序数reverseNum,最后输出结果。