# 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 ` `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.

My Personal Notes arrow_drop_up

Improved By : prerna saini, SoumikMondal

Article Tags :
Practice Tags :

2

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