I am using ArcGIS for Desktop and I want the lines to be curvy not that straight as the picture depicts:
solution: In Arcgis , the smooth lines tool , peak ...
As commented by @Vince:
The canonical solution is to use a low pass filter, as described in the documentation to "fuzz" the integer values, which prevents the contour generation code from generating zig-zag patterns.
@Michael Miles-Stimson comment the following :
It looks like your DEM is an integer raster.. the contour tool is dutifully doing what it's supposed to but it's not pleasing to the eye. I would (and have) recommend smoothing the raster not the lines.
In my opinion, integer or not, it doesn't really matter but the idea is the right one.
What Michael ideas refers at is that the stairs-type pattern is caused by the resolution of your raster. To solve this with Arcgis tools (with Spatial analysis extension), you can use the Resample Tool in ArcToolbox. You need to use the "bilinear" technique of resampling to achieve the best rendering.
For example, if your raster resolution is one meter and you set it to 0.01m, you'll see your contours will look much less blocky, because the blocky steps will not be any more of 1 meter side but 10cm.
Alternative solution should you not have Spatial Analyst is to use gdal_translate (you can find it as a command line tool when you install QGIS) with the following options :
double the cell size (-outsize 200% 0) with
-ot Float32 -r cubicsplineand then back to the same cell size (or slightly smaller) with the same resample method before generating the contours.
One can also resample with bilinear option with gdalwarp :
gdalwarp -t_srs EPSG:[your EPSG code] ...codes... **-r bilinear** input.tif output.tif