以下程序的输出结果是:

以下程序的输出结果是:
#include “stdio.h”
main()
{char *s,*s1=“here is”,*s2=“key”;
s=s1;
while (*s1!=’\0’) s1++;
while (*s1++!=*s2++) s2=s;
while (*s2!=’\0’) s2++;
printf ("%d-%d=%d\n",s2,s,s2-s);
}
之前一直不理解这个的结果是什么意思。。
在这里插入图片描述

#include "stdio.h"
main()
{char *s,*s1="here is",*s2="key"; 
s=s1; //从这里开始,print的s=s1=19748668,即字符串存储起始位置
while (*s1!='\0')	s1++;//s1向后走,直到字符串的末尾\0,此时printf的s1=19748675
while (*s1++!=*s2++)	s2=s;
//这行功能:比较s1与s2,s1的“h”(位置为s+1=19748669)与s2的“k”不同,则s2=s
//这行执行后:s1=19748922,s2=19748669
while (*s2!='\0')	s2++; 
//这行让s2查找至末尾\0: s2=19748675(*s2="here is")
printf ("s=%d\n",s);
printf ("s1=%d\n",s1);
printf ("s2=%d\n",s2);
printf ("%d-%d=%d\n",s2,s,s2-s);//s2-s即“here is”的长度为7
}

每次执行程序,存储位置都不一定相同,故s,s1,s2的值每次都会有所不同,但是存储的相对位置是不会改变的,s2-s即“here is”的长度,为7。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 下面是一个简单的Java程序,它可以输出给定的结果: ```java public class PrintNumbers { public static void main(String[] args) { int num = 6; for (int i = 1; i <= num; i++) { for (int j = 1; j <= i; j++) { System.out.print(j); } System.out.println(); } } } ``` 注意,这里使用两个嵌套的循环来迭代并输出数字序列。外部循环用于控制行数,而内部循环用于在每行上打印实际的数字序列。我们使用 `System.out.print()` 方法在同一行上输出数字,然后使用 `System.out.println()` 方法在每行的末尾插入换行符。优化的方式使得程序具有更好的灵活性和可读性。 ### 回答2: 编写Java程序输出下列结果的关键是要使用循环语句和嵌套循环来控制输出的行数和每行输出的数字个数。 以下是一种可能的解决方案: ```java public class NumberPattern { public static void main(String[] args) { int rows = 6; // 控制输出的行数 for (int i = 1; i <= rows; i++) { for (int j = 1; j <= i; j++) { System.out.print(j); } System.out.println(); // 每行结束后换行 } } } ``` 在这个程序中,外层循环控制输出的行数,内层循环控制每行输出的数字个数。内层循环从 1 循环到当前行数,依次输出数字。每行结束后,使用 `System.out.println()` 换行。 当运行这个程序时,它将输出如下内容: ``` 1 12 123 1234 12345 123456 ``` 上述代码展示了如何利用嵌套循环创建所需的数字模式。您可以根据需要进行调整和修改以满足不同的输出要求。 ### 回答3: 要编写一个Java程序输出这个结果,可以使用嵌套循环和字符串拼接的方式实现。以下是一个可能的实现方式: ```java public class NumberPattern { public static void main(String[] args) { int n = 6; for (int i = 1; i < n; i++) { // 使用StringBuilder来拼接数字字符串 StringBuilder sb = new StringBuilder(); for (int j = 1; j <= i; j++) { sb.append(j); } System.out.print(sb.toString() + " "); } } } ``` 解释如下: - 第一个for循环用于控制行数,从1到5。 - 在每一行内部,我们使用了一个StringBuilder来拼接数字字符串。 - 第二个for循环用于控制每一行中的数字个数,从1到当前行数i。 - 在每次循环时,我们将当前数字j添加到StringBuilder中。 - 在完成拼接后,使用toString()方法将StringBuilder转换为字符串并输出。 - 最后的输出结果为:1 12 123 1234 12345。 希望这个回答能对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值