为什么只是改变了输出的东西变换后,就没有换行了

这是第一个程序

img

img


然后想输出的是随机字母,变换之后就没了换行

img

img

  • ```

```


#include<stdlib.h>
#include<time.h>
#include<iostream>
using namespace std;
int main() {
    char b;                                    //char a;
    srand((unsigned)time(NULL));
    for (int a = 1; a <= 10; a++) {
        for (int i = 1; i <= 16; i++)
            cout << " ";
        for (int j = a; j <= 9; j++)
            cout << " ";
        for (int l = 1; l <= 2 * a - 1; l++) {
            b = rand() % 26 + 'a';          //a=rand()%26 +'a';
            cout << (char)b ;                
        }
        cout<<endl;
    }
}

因为你输出*号的时候a没用到 不影响你的大循环但是 你输出字母的时候 a 不管是哪个字符 ascii码都比10大 只做了一次最外层循环 而你看到的那么多数据其实是

        for (int l = 1; l <= 2 * a - 1; l++) {
            b = rand() % 26 + 'a';          //a=rand()%26 +'a';
            cout << (char)b ;                
        }

做的 因为‘a' ascii码是97了