# Change/add only one character and print ‘*’ exactly 20 times

In the below code, change/add only one character and print ‘*’ exactly 20 times.

```int main()
{
int i, n = 20;
for (i = 0; i < n; i--)
printf("*");
getchar();
return 0;
}
```

Solutions:

1. Replace i by n in for loop’s third expression

## C++

 `#include ` `using` `namespace` `std; ` `int` `main() ` `{ ` `    ``int` `i, n = 20; ` `    ``for` `(i = 0; i < n; n--) ` `        ``cout << ``"*"``; ` `    ``getchar``();  ` `    ``return` `0; ` `} `

## C

 `#include ` `int` `main() ` `{ ` `    ``int` `i, n = 20; ` `    ``for` `(i = 0; i < n; n--) ` `        ``printf``(``"*"``); ` `    ``getchar``();     ` `    ``return` `0; ` `} `

## Java

 `// Java code ` `class` `GfG {  ` `public` `static` `void` `main(String[] args)  ` `{  ` `    ``int` `i, n = ``20``;  ` `    ``for` `(i = ``0``; i < n; n--)  ` `        ``System.out.print(``"*"``);  ` `}  ` `}  `

## C#

 `// C# code ` `using` `System; ` `class` `GfG  ` `{  ` `    ``public` `static` `void` `Main()  ` `    ``{  ` `        ``int` `i, n = 20;  ` `        ``for` `(i = 0; i < n; n--)  ` `            ``Console.Write(``"*"``);  ` `    ``}  ` `}  ` ` `  `// This code is contributed by SoumikMondal `

2. Put ‘-‘ before i in for loop’s second expression

 `#include ` `int` `main() ` `{ ` `    ``int` `i, n = 20; ` `    ``for` `(i = 0; -i < n; i--) ` `        ``printf``(``"*"``);            ` `    ``getchar``();     ` `    ``return` `0; ` `} `

3. Replace < by + in for loop's second expression

 `#include ` `int` `main() ` `{ ` `    ``int` `i, n = 20; ` `    ``for` `(i = 0; i + n; i--) ` `       ``printf``(``"*"``); ` `    ``getchar``(); ` `    ``return` `0; ` `} `

Let’s extend the problem little.

Change/add only one character and print ‘*’ exactly 21 times.

Solution: Put negation operator before i in for loop’s second expression.

Explanation: Negation operator converts the number into its one’s complement.

```       No.              One's complement
0 (00000..00)            -1 (1111..11)
-1 (11..1111)             0 (00..0000)
-2 (11..1110)             1 (00..0001)
-3 (11..1101)             2 (00..0010)
...............................................
-20 (11..01100)           19 (00..10011)
```

 `#include ` `int` `main() ` `{ ` `    ``int` `i, n = 20; ` `    ``for` `(i = 0; ~i < n; i--)  ` `        ``printf``(``"*"``); ` `    ``getchar``(); ` `    ``return` `0; ` `} `

Please comment if you find more solutions of above problems.

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up

Article Tags :
Practice Tags :

2

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.