这是以相反顺序打印整数数组的相当简单的问题.虽然每当我尝试打印时,它最终都会显示垃圾值.以下是我的计划.
#include <stdio.h>
#include <conio.h>
int main()
{
int temp = { '\0' };
int num[9];
int i;
int j = 8;
printf("Enter 8 numbers\n");
for (i = 0; i < 8; i++)
{
scanf_s("%d", &num[i], 1);
}
for (i = 0; i <= j; i++, j--)
{
temp = num[i];
num[i] = num[j];
num[j] = temp;
}
printf("\nThe numbers in reverse are\n");
for (i = 0; i <=8; i++)
{
printf("%d\n", num[i]);
}
_getch();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
假设我输入的数字从1到8,它会反向打印数字,但它打印的第一个值是垃圾值.我知道我可以使用和If语句来对抗这种情况,但有没有办法在不使用if的情况下解决这个问题?
我正在用Java编写一个练习程序,以便将一个数字提升到另一个.在不知不觉中,我犯了一个特殊的错误.然而,无论我给出的输入,答案仍然是正确的.下面是一段代码.
public static void main(String args[])
{
int count;
int num1, num2, result = count =1;
try(Scanner n1 = new Scanner(System.in))
{
System.out.println("Enter the 1st number");
num1 = n1.nextInt();
System.out.println("Enter the 2nd number");
num2 = n1.nextInt();
}
while(count<=num2)
{
if(num2!=0)
{
result = num1*result;
count++;
}
else
{
System.out.println(num1+" to the power "+num2+" is "+num1);
}
}
System.out.println(num1+" to the power "+num2+" is "+result);
}
Run Code Online (Sandbox Code Playgroud)
关于到底发生了什么,我真的很疯狂.为什么语句"System.out.println(num1 +"到power"+ num2 +"是"+ num1)"没有打印num1的值.
以下是输出:
{
Enter the 1st number
100
Enter the 2nd …Run Code Online (Sandbox Code Playgroud) 我需要在表单中打印图案
ABCDEF FEDCBA
ABCDE EDCBA
ABCD DCBA
ABC CBA
AB BA
A A
Run Code Online (Sandbox Code Playgroud)
以下是我的代码:
public static void main(String args[])
{
char[] c = {'A','B','C','D','E','F','G'};
int i, j;
for(j = 5; j >= 0; j--)
{
for(int k = 0; k <= j; k++)
{
System.out.print(c[k]);
}
for(i = j; i >= 0; i--)
{
System.out.print(c[i]);
}
System.out.println();
}
}
Run Code Online (Sandbox Code Playgroud)
这给了我输出
ABCDEFFEDCBA
ABCDEEDCBA
ABCDDCBA
ABCCBA
ABBA
AA
Run Code Online (Sandbox Code Playgroud)
达到此输出相当容易.但是,我无法提供空间.我知道产生空间的循环将介于两个for循环之间,但我无法弄清楚如何做到这一点.它困扰我一段时间.