如何用嵌套for循环实现指定格式的数字图案输出?
实现指定数字矩阵输出的问题解决
期望输出
Enter your number: 4 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 5
现有代码问题
你当前的代码内层循环每次都输出i,导致整行都是相同数字,无法让每行最后一位变为i+1。
修改后的代码方案
方案一:拆分内层循环
这种写法逻辑更直观,先输出前num-1个当前值,最后单独输出下一个值:
#include <stdio.h> int main(){ int num; printf("Enter your number: "); scanf("%d", &num); for(int i = 1; i <= num; i++){ // 输出num-1个当前迭代值i for(int j = 0; j < num - 1; ++j){ printf("%d ", i); } // 最后一位输出i+1 printf("%d\n", i + 1); } return 0; }
方案二:循环内条件判断
通过判断当前是否是最后一个位置,决定输出值:
#include <stdio.h> int main(){ int num; printf("Enter your number: "); scanf("%d", &num); for(int i = 1; i <= num; i++){ for(int j = 0; j < num; ++j){ if(j == num - 1){ // 最后一位输出i+1,不需要末尾空格 printf("%d", i + 1); } else { printf("%d ", i); } } printf("\n"); } return 0; }
两种方案都能实现你要的输出效果,可根据习惯选择。
内容的提问来源于stack exchange,提问作者tiredcomscistudent
相关产品推荐
相关产品推荐

