用c语言编写给定一组不重复的个位数,例如5,6,2,9,4,1,找出由其中3个数字组成最大的3位数
时间: 2024-01-07 22:03:22 浏览: 34
好的,以下是用C语言编写的程序:
```c
#include <stdio.h>
int main() {
int nums[] = {5, 6, 2, 9, 4, 1};
int len = sizeof(nums) / sizeof(nums[0]); // 数组长度
int max_num = 0;
// 找出最大的三位数
for (int i = 0; i < len; i++) {
for (int j = i + 1; j < len; j++) {
for (int k = j + 1; k < len; k++) {
int num = nums[i] * 100 + nums[j] * 10 + nums[k];
if (num > max_num) {
max_num = num;
}
}
}
}
printf("最大的三位数为:%d\n", max_num);
return 0;
}
```
程序中首先定义了一个整型数组`nums`,存储了给定的数字。然后用三重循环找出所有由其中三个数字组成的三位数,并比较大小,找出最大的三位数。最后将结果输出即可。
相关问题
用C语言编写给定一个字符串 s ,请你找出其中不含有重复字符的最长子串的长度。
给定一个字符串 s,要找出其中不含有重复字符的最长子串的长度,可以使用双指针维护一个滑动窗口,不断移动右指针,直到遇到重复字符的时候把左指针移到前面的重复字符的下一位。移动指针过程中,记录窗口长度的最大值即为答案。具体实现可以使用一个哈希表来存储每个字符最后一次出现的位置,如果当前字符已经在哈希表中出现过并且它的位置在左指针的右边,就更新左指针的位置。最后返回最大的窗口长度即可。
C语言代码如下:
```c
int lengthOfLongestSubstring(char * s){
int len = strlen(s);
int left = 0, res = 0;
int map[128] = {0};
for (int i = 0; i < len; i++) {
if (map[s[i]] > left) {
left = map[s[i]];
}
map[s[i]] = i + 1;
res = fmax(res, i - left + 1);
}
return res;
}
```
用c语言编写:给定不超过6的正整数A,考虑从A开始的连续4个数字。请输出所有由它们组成的无重复数字的3位数。
好的,以下是用C语言实现的代码:
```c
#include <stdio.h>
int main() {
int A;
scanf("%d", &A); // 输入A
for (int i = 0; i < 4; i++) { // 枚举四个数字
for (int j = i+1; j < 4; j++) { // 枚举不同的两个数字
for (int k = j+1; k < 4; k++) { // 枚举不同的三个数字
printf("%d%d%d\n", A+i, A+j, A+k); // 输出三个数字
}
}
}
return 0;
}
```
这个代码与Python的实现思路基本相同,可以依次输出所有由连续四个数字组成的无重复数字的3位数。例如当输入为3时,输出为:
```
345
346
347
356
357
367
```