#include<bits/stdc++.h> using namespace std; int main(){ int n; while(cin>>n){ int book[10]; while(n){ int num=n%10; if(book[num]==0){ book[num]++; cout<<num; } n=n/10; } return 0; } }
时间: 2024-02-14 08:25:38 浏览: 134
这段代码是一个从一个整数中提取不重复数字并输出的程序,与之前的代码相比,唯一的区别是将book数组的声明位置修改为了while循环内部。
这样做的效果是,在每次输入一个新的整数时,都会重新初始化book数组,将数组中的元素都置为0。这样可以确保每个整数都被单独处理,不会受到之前处理过的整数的影响。
其余部分的逻辑和之前的代码是相同的。程序会不断输入整数n,并从n中提取不重复数字并输出。
请注意,这段代码中有一个问题,即return 0;语句位于while循环内部。这意味着程序在处理完第一个整数后就会立即退出,而无法继续处理后续的整数。如果你想要处理多个整数,请将return 0;语句移动到while循环之后。
相关问题
#include <bits/stdc++.h> using namespace std; int main() { int t; cin >> t; while (t--) { int n; cin >> n; string s; cin >> s; int i = 0; while (i < n) { int start = i; cout << s[i++]; while (s[i++] != s[start]); } cout << endl; } }解释代码含义
这段代码实现了一个字符串压缩的功能,输入一个字符串,将其中连续的相同字符压缩为一个字符,并输出压缩后的字符串。
具体来说,代码首先读入一个整数 t,表示测试用例的数量。然后,使用 while 循环遍历 t 次。在每个测试用例中,代码先读入一个整数 n,表示输入字符串的长度。接着,使用字符串类型的变量 s 读入一个字符串。然后,for 循环从字符串的第一个字符开始遍历,找到连续的相同字符,并输出其中的第一个字符。在输出第一个字符后,for 循环再继续遍历到与第一个字符不同的字符位置,然后再输出这段连续相同字符的长度。在每个测试用例结束后,代码输出一个换行符。
需要注意的是,这段代码使用了头文件 <bits/stdc++.h>,这是一个非标准头文件,包含了 C++ 标准库中的所有头文件。使用该头文件可以方便地编写 C++ 代码,但不建议在生产环境中使用,因为它不是标准的 C++ 头文件。
#include<bits/stdc++.h> using namespace std; int book[10]; int main(){ int n; while(cin>>n){ //int book[10]; while(n){ int num=n%10; if(book[num]==0){ book[num]++; cout<<num; } n=n/10; } return 0; } }
这段代码是一个从一个整数中提取不重复数字的程序。它使用了一个book数组来记录数字是否出现过。代码的逻辑如下:
1. 声明一个整数数组book,用于记录数字是否出现过。
2. 进入一个无限循环,通过cin输入一个整数n。
3. 在内层循环中,将n的个位数取出并赋值给变量num。
4. 判断book[num]是否等于0,即判断数字num是否已经出现过。
5. 如果book[num]等于0,则将book[num]加1,并输出num。
6. 将n除以10,舍弃个位数,继续下一轮循环直到n为0。
7. 返回0,结束程序。
该程序的作用是将输入的整数中的不重复数字依次输出。例如,如果输入的整数为11223344,则输出结果为1234。
阅读全文