用c语言编程输入两个整数,按大小顺序输出。要求在主函数中完成整数的输入输出,在函数void cmp (int*pmax,int*pmin)中实现两个整数的比较和交换
时间: 2023-08-16 13:06:04 浏览: 187
好的,我可以帮你解决这个问题。下面是代码实现:
```c
#include <stdio.h>
void cmp(int *pmax, int *pmin);
int main()
{
int a, b;
printf("请输入两个整数:");
scanf("%d %d", &a, &b);
cmp(&a, &b);
printf("从小到大排序后的结果为:%d %d\n", a, b);
return 0;
}
void cmp(int *pmax, int *pmin)
{
if (*pmax < *pmin)
{
int temp = *pmax;
*pmax = *pmin;
*pmin = temp;
}
}
```
在主函数中,我们先输入两个整数,然后调用cmp函数进行比较和交换。在cmp函数中,我们使用指针来交换两个整数的值,如果*pmax比*pmin小,就交换它们的值。最后在主函数中输出排序后的结果。
希望对你有帮助!
相关问题
请运用C语言回答以下问题: 1、将一个3×3的整数矩阵转置,要求用指针方法编程实现。(所谓矩阵转置,就是矩阵行列互换)。 2、输入一行文字,统计并输出其中大写字母、小写字母、空格、数字以及其它字符各有多少,要求用指针方法编程实现。 3、字符串比较:输入两个字符串str1和str2,编程实现比较两个字符串的大小。当字符串str1>str2时,输出1;当字符串str1=str2时,输出0;当字符串str1<str2时,输出-1。要求: (1)使用指针方法编程实现; (2)如果有设计子函数,要求调用语句中的实参和子函数中的形参均为指针变量; (3)不允许使用字符串处理函数strcmp( )。 4、输入一个长度为N的字符串A,从其第K个字符起,插入长度为M的字符串B,输出新的长度为N+M的字符串,其中N、M均小于100,且K<=N。例如: 输入:We are students↙ 7↙ SZU ↙ 屏幕输出:We are SZU students 要求:使用指针方法编程实现(包含有指针变量)。 5、在主函数中输入10个整数,请通过调用自己编写的采用交换法排序的子函数void sort(int *array, int n)对这些数字从小到大进行升序排序,并在主函数中输出排序后的数据。
1、矩阵转置代码如下:
```c
#include <stdio.h>
void transpose(int (*arr)[3], int n) {
int temp;
for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n; j++) {
temp = arr[i][j];
arr[i][j] = arr[j][i];
arr[j][i] = temp;
}
}
}
int main() {
int arr[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
transpose(arr, 3);
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}
```
2、统计字符代码如下:
```c
#include <stdio.h>
#include <ctype.h>
void count(char *str, int *upper, int *lower, int *digit, int *space, int *other) {
while (*str) {
if (isupper(*str)) (*upper)++;
else if (islower(*str)) (*lower)++;
else if (isdigit(*str)) (*digit)++;
else if (isspace(*str)) (*space)++;
else (*other)++;
str++;
}
}
int main() {
char str[100];
int upper = 0, lower = 0, digit = 0, space = 0, other = 0;
printf("请输入一行文字:\n");
fgets(str, 100, stdin);
count(str, &upper, &lower, &digit, &space, &other);
printf("大写字母:%d\n小写字母:%d\n数字:%d\n空格:%d\n其它字符:%d\n", upper, lower, digit, space, other);
return 0;
}
```
3、字符串比较代码如下:
```c
#include <stdio.h>
int str_cmp(char *str1, char *str2) {
while (*str1 && *str2 && *str1 == *str2) {
str1++;
str2++;
}
if (*str1 > *str2) return 1;
else if (*str1 < *str2) return -1;
else return 0;
}
int main() {
char str1[100], str2[100];
printf("请输入第一个字符串:\n");
fgets(str1, 100, stdin);
printf("请输入第二个字符串:\n");
fgets(str2, 100, stdin);
int result = str_cmp(str1, str2);
printf("比较结果:%d\n", result);
return 0;
}
```
4、字符串插入代码如下:
```c
#include <stdio.h>
void insert(char *str1, char *str2, int k) {
int len1 = 0;
while (str1[len1]) len1++;
int len2 = 0;
while (str2[len2]) len2++;
for (int i = len1 - 1; i >= k - 1; i--) {
str1[i + len2] = str1[i];
}
for (int i = 0; i < len2; i++) {
str1[k - 1 + i] = str2[i];
}
}
int main() {
char str1[200], str2[100];
int k;
printf("请输入原字符串:\n");
fgets(str1, 200, stdin);
printf("请输入要插入的字符串:\n");
fgets(str2, 100, stdin);
printf("请输入插入位置:\n");
scanf("%d", &k);
insert(str1, str2, k);
printf("插入后的字符串:%s\n", str1);
return 0;
}
```
5、交换排序代码如下:
```c
#include <stdio.h>
void sort(int *array, int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = i + 1; j < n; j++) {
if (array[i] > array[j]) {
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
}
int main() {
int array[10];
printf("请输入10个整数:\n");
for (int i = 0; i < 10; i++) {
scanf("%d", &array[i]);
}
sort(array, 10);
printf("排序后的结果:\n");
for (int i = 0; i < 10; i++) {
printf("%d ", array[i]);
}
printf("\n");
return 0;
}
```
C语言编程输入十个正整数,然后自动按从大到小的顺序输出。
可以使用C语言的排序函数qsort(),按照降序排列数组中的元素,然后输出即可。以下是示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
int cmp(const void* a, const void* b) {
return *(int*)b - *(int*)a;
}
int main() {
int arr[10];
int i;
printf("请输入十个正整数:");
for (i = 0; i < 10; i++) {
scanf("%d", &arr[i]);
}
qsort(arr, 10, sizeof(int), cmp);
printf("按从大到小的顺序输出:");
for (i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
当然,还可以使用冒泡排序、选择排序等算法实现。
阅读全文