c语言输出【程序功能】输入整数n和m,按以上规则从1到m进行报数,报数为7的倍数,或者其各位数包含7时,输出*号,否则输出该报数。每行输出n个报数,每个报数或*号后1个空格。
时间: 2024-09-16 21:03:42 浏览: 36
C语言程序设计100个经典例子.pdf
在 C 语言中,你可以编写一个循环结构来实现这个功能。这里是一个简单的示例程序:
```c
#include <stdio.h>
#include <stdbool.h> // 使用bool类型
// 检查一个整数是否含有数字7
bool hasDigitSeven(int num) {
while (num != 0) {
if (num % 10 == 7) {
return true;
}
num /= 10;
}
return false;
}
// 报数并检查条件输出*
int countdown(int start, int end) {
bool printStar = false;
for (int i = start; i <= end; i++) {
if (i % 7 == 0 || hasDigitSeven(i)) {
printStar = true;
}
printf("%d ", i);
if (printStar) {
printf("* ");
printStar = false;
} else {
printf(" "); // 如果不是7的倍数,输出两个空格
}
if ((i + 1) % n == 0) { // 每行输出n个报数后换行
printf("\n");
}
}
return 0;
}
int main() {
int n, m;
printf("请输入每行输出的数字个数(n): ");
scanf("%d", &n);
printf("请输入最大报数(m): ");
scanf("%d", &m);
countdown(1, m);
return 0;
}
```
这个程序首先定义了一个辅助函数`hasDigitSeven`,检查一个整数是否包含数字7。接着,在`countdown`函数中,对于从1到m之间的每个数字,如果它是7的倍数或者包含7,则输出星号,否则输出空格。每行输出完成后,会在新的一行开始。
阅读全文