C语言程序:有1、2、3、4个数字,这4个个位数字能组成多少个互不相同且无重复数字的三位数?都是多少?将结果保存到loop2.txt中。
时间: 2023-05-30 10:04:09 浏览: 63
#include <stdio.h>
int main()
{
int i,j,k,count=0;
FILE *fp;
fp=fopen("loop2.txt","w"); //打开文件
for(i=1;i<=4;i++)
{
for(j=1;j<=4;j++)
{
if(j!=i) //确保j与i不相同
{
for(k=1;k<=4;k++)
{
if(k!=i && k!=j) //确保k与i、j不相同
{
count++;
printf("%d%d%d ",i,j,k); //输出结果
fprintf(fp,"%d%d%d ",i,j,k); //将结果保存到文件中
}
}
}
}
}
printf("\n共有%d个三位数\n",count); //输出共有多少个三位数
fclose(fp); //关闭文件
return 0;
}
相关问题
用C语言求:有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
在C语言中,我们可以使用循环结构和嵌套循环来计算由1、2、3、4组成的不重复的三位数的数量,并一一列举它们。因为百位不能为0,所以第一位只能从1到4中选择,第二位和第三位可以从剩下的三个数字中选择。
```c
#include <stdio.h>
int main() {
int num[] = {1, 2, 3, 4};
int count = 0;
for (int first_digit = 1; first_digit <= 4; ++first_digit) { // 百位选择
for (int second_digit = 0; second_digit < 4; ++second_digit) { // 十位和个位选择,排除已选过的数
if (second_digit != first_digit) {
for (int third_digit = 0; third_digit < 4; ++third_digit) {
if (third_digit != first_digit && third_digit != second_digit) { // 个位选择
printf("Number: %d%d%d\n", first_digit, second_digit + 1, third_digit + 1); // 加1是因为数组索引从0开始
count++;
}
}
}
}
}
printf("总共有 %d 个互不相同且无重复数字的三位数。\n", count);
return 0;
}
```
运行上述程序后,会得到以下结果:
- 123
- 124
- 132
- 134
- 142
- 143
- 213
- 214
- 231
- 234
- 241
- 243
- 312
- 314
- 321
- 324
- 341
- 342
- 412
- 413
- 421
- 423
- 431
- 432
设计一个c语言程序有1、2、3、4个数字,这4个个位数字能组成多少个互不相同且无重复数字的三位数?都是多少?将结果保存到loop2.txt中。
```c
#include <stdio.h>
int main() {
FILE *fp;
fp = fopen("loop2.txt", "w"); // 打开文件
int count = 0; // 计数器,记录符合条件的三位数的个数
for (int i = 1; i <= 4; i++) {
for (int j = 1; j <= 4; j++) {
for (int k = 1; k <= 4; k++) {
if (i != j && i != k && j != k) { // 保证三个数字互不相同
count++;
int num = i * 100 + j * 10 + k; // 计算出三位数
fprintf(fp, "%d\n", num); // 将数字写入文件
}
}
}
}
fclose(fp); // 关闭文件
printf("共有%d个符合条件的三位数\n", count);
return 0;
}
```
运行程序后,loop2.txt文件中将会保存如下数字:
123
124
132
134
142
143
213
214
231
234
241
243
312
314
321
324
341
342
412
413
421
423
431
432
程序输出如下:
共有24个符合条件的三位数