c语言中,如何输入多行一维数组或者例子中的输入法?是随意几行,不要用二维数组的,例子如下: C语言中如何输入多行字符串

c\u8bed\u8a00\u4e2d\u600e\u6837\u5b9e\u73b0\u591a\u884c\u8f93\u5165\u7136\u540e\u518d\u591a\u884c\u8f93\u51fa\uff1f

\u8981\u5b9e\u73b0\u591a\u884c\u8f93\u5165\uff0c\u518d\u591a\u884c\u8f93\u51fa\uff0c\u53ef\u91c7\u7528\u6570\u7ec4\u534f\u52a9\u5b9e\u73b0\uff0c\u65b9\u6cd5\u5982\u4e0b\uff1a
\u65b9\u6cd5\u4e00\uff1a\u5c06\u5df2\u8f93\u5165\u7684\u6570\u636e\u5148\u4fdd\u5b58\u5230\u6570\u7ec4\uff08\u4e8c\u7ef4\u6570\u7ec4\uff09\u4e2d\uff0c\u7136\u540e\u518d\u8fdb\u884c\u6570\u636e\u8ba1\u7b97\u5e76\u8f93\u51fa\u7ed3\u679c
\u65b9\u6cd5\u4e8c\uff1a\u8f93\u5165\u65f6\uff0c\u5b8c\u6210\u8ba1\u7b97\uff0c\u5c06\u7ed3\u679c\u5b58\u50a8\u5230\u6570\u7ec4\uff08\u4e00\u7ef4\u6570\u7ec4\uff09\u4e2d\uff0c\u5168\u90e8\u8ba1\u7b97\u5b8c\u6210\uff0c\u8f93\u51fa\u7ed3\u679c\u6570\u7ec4\u3002
\u91c7\u7528\u54ea\u4e00\u79cd\u65b9\u6cd5\uff0c\u8981\u770b\u4e0a\u4f53\u9898\u76ee\u7279\u70b9\u548c\u8981\u6c42\u3002
\u5982\uff0c\u9898\u76ee\uff1a\u8f93\u5165n\u884c\u6574\u6570\uff0c\u8f93\u51fa\u6bcf\u884c\u7684\u5e73\u5747\u6570 \uff08\u53ef\u91c7\u7528\u65b9\u6cd5\u4e8c\uff09
\u53c2\u8003\u4ee3\u7801\uff1a

\u5728C\u8bed\u8a00\u4e2d\uff0c\u8981\u5b9e\u73b0\u591a\u884c\u6570\u636e\u8981\u4f7f\u7528\u5faa\u73af\u8bed\u53e5\uff0c\u8f93\u5165\u7684\u65f6\u5019\u8f93\u5165\u56de\u8f66\u952e\u8fdb\u884c\u6362\u884c\u3002\u6bd4\u5982\u8981\u8f93\u5165\u4e00\u4e2a2\u884c3\u5217\u7684\u77e9\u9635\uff0c\u6e90\u7801\u5982\u4e0b\uff1a #include#includeint main(){ int a[2][3]; int i,j; printf("\u8bf7\u8f93\u5165\u4e00\u4e2a2\u884c3\u5217\u7684\u77e9\u9635:\n"); for(i=0;i<2;i++) { for(j=0;j<3;j++) { scanf("%d",&a[i][j]); } } printf("\n\u60a8\u8f93\u5165\u7684\u77e9\u9635\u662f\uff1a\n"); for(i=0;i<2;i++) { for(j=0;j<3;j++) { printf("%d ",a[i][j]); } printf("\n"); } system("pause"); return 0;}

恩,楼主这个问题我也思考过,以下是我的总结,希望能对你有点提示
1.for循环输入
缺点:
1.)不能通过getchar()从键盘上获得字符'\0',所以如果你想输入的是字符串,处理起来比较麻烦;比如,你想输入“china”字符串的话,你不得不这么写
for(i=0;i<5;i++)
a[i]=getchar();
a[5]='\0';
优点:
引入变量i,很方便控制你想输入的长度,并且不会造成溢出问题,比如,你想输入33个字符,你只要i<33,然后输入就好,不用像gets,scanf那样去数。
--------------------------------------------
2.gets()
缺点:
个人觉得没什么缺点,目的用来输入字符串,允许输入空格,回车符做为字符串输入结束的标志。但是,你必须定义一个足够大的数组,防止输入的字符数超过数组长度而造成溢出错误。
优点:
如果你想输入带有空格或制表符的字符串,用它最合适啦~
-----------------------------------------------
3.scanf()
缺点:
输入的字符串不能带有空格,制表符,回车,scanf默认这些是结束输入的标志。表达形式上没有gets()简洁.同样,也必须将数组定义的足够大,会造成不必要的内存浪费。
scanf()的参数为地址,容易忘记写&,出错几率大
优点:
同gets()一样,可以实现字符串的整体输入,并自动补'\0',不用像第一种方法那样麻烦
--------------------------------------------------
如果你输入:abc dsdadsa,且只取前5个的话,只有第一种可以,各有利弊
实现如下:
1.char a[6];
int i;
for(i=0;i<5;i++)
a[i]=getchar();
a[5]='\0';
printf("%s",a);
2.gets();必须定义长度为5的字符数组,输入超过5个,容易溢出,不推荐
3.scanf();默认空格结束,实现起来相当麻烦,不推荐
------------------------------------------------
总结下,
如果你想输入的字符串长度已经确定,用for会节省内存,但不要忘了最后加'\0'
如果你想输入的字符串长度不确定,用gets(),scanf()会好一些,但要定义足够大的数组,可能会造成内存浪费
--------------------------------------
楼下的可以继续补充,哈哈,好长~~~


你可以写个中断循环条件 比如d=-1

用循环就好了

  • c璇█涓,濡備綍杈撳叆澶氳涓缁存暟缁鎴栬呬緥瀛愪腑鐨勮緭鍏ユ硶?鏄殢鎰忓嚑琛,涓嶈鐢...
    绛旓細1.for寰幆杈撳叆 缂虹偣:1.)涓嶈兘閫氳繃getchar()浠庨敭鐩樹笂鑾峰緱瀛楃'\0'锛屾墍浠ュ鏋滀綘鎯宠緭鍏ョ殑鏄瓧绗︿覆锛屽鐞嗚捣鏉ユ瘮杈冮夯鐑;姣斿锛屼綘鎯宠緭鍏モ渃hina鈥濆瓧绗︿覆鐨勮瘽锛屼綘涓嶅緱涓嶈繖涔堝啓 for(i=0;i<5;i++)a[i]=getchar();a[5]='\0';浼樼偣:寮曞叆鍙橀噺i锛屽緢鏂逛究鎺у埗浣犳兂杈撳叆鐨勯暱搴︼紝骞朵笖涓嶄細閫犳垚婧㈠嚭闂锛...
  • c璇█涓缁存暟缁杈撳嚭鍥涜鍥涘垪,杈撳叆鎬庝箞鍐?
    绛旓細int main(){ int i,j,k,a[16];for(i=k=0; i<16; i++)a[i]=++k;for(i=0; i<16; i++){ printf("%4d",a[i]);if(i%4==3)printf("\n");} return 0;}
  • 濡備綍鍦C璇█涓緭鍏ヤ竴缁存暟缁?
    绛旓細1銆佽緭鍏ユ暟缁勯渶瑕佷娇鐢ㄦ寚閽堣幏鍙栧湴鍧鍚庯紝灏辫兘瀵瑰緱鍒扮殑鏁扮粍灏辫鎿嶄綔浜銆傞鍏堟墦寮DEV C++杞欢锛屾柊寤轰竴涓┖鐧界殑C璇█鏂囦欢锛2銆佽緭鍏ョ▼搴忕殑婧愮爜锛屽厛瀹氫箟涓涓暣鍨嬫暟缁勨渁[5]鈥濓紝閲囩敤scanf璇彞杈撳叆鏁扮粍涓殑姣忎釜鍏冪礌锛岃繖閲屼娇鐢ㄦ寚閽堟潵瀵硅緭鍏ョ殑鏁板瓧杩涜璁块棶锛岃鍏堢粰杈撳叆鐨勬瘡涓涓暟瀛楃粰浜堝畠鐨勫湴鍧锛屼究浜庤闂紝鏈鍚庢嬁寰楀埌...
  • C璇█濡備綍瀹炵幇涓涓涓缁存暟缁鐨杈撳叆杈撳嚭?
    绛旓細C璇█绋嬪簭濡備笅锛歩nclude <stdio.h> void fun(int a[],int n,int *k){ int i,maxxr,j;maxxr=a[0];for(i=0;i<n;i++){ if(maxxr<a[i]){ maxxr=a[i];} } for(i=0;i<n;i++){ if(maxxr==a[i]){ j=i;break;} } k=j;} int main(void){ int a[10]={ 876,...
  • c璇█涓庢牱瀹炵幇澶氳杈撳叆鐒跺悗鍐嶅琛岃緭鍑?
    绛旓細鏂规硶涓锛氬皢宸茶緭鍏ョ殑鏁版嵁鍏堜繚瀛樺埌鏁扮粍锛堜簩缁存暟缁勶級涓紝鐒跺悗鍐嶈繘琛屾暟鎹绠楀苟杈撳嚭缁撴灉 鏂规硶浜岋細杈撳叆鏃讹紝瀹屾垚璁$畻锛屽皢缁撴灉瀛樺偍鍒版暟缁勶紙涓缁存暟缁勶級涓紝鍏ㄩ儴璁$畻瀹屾垚锛岃緭鍑虹粨鏋滄暟缁勩傞噰鐢ㄥ摢涓绉嶆柟娉曪紝瑕佺湅涓婁綋棰樼洰鐗圭偣鍜岃姹傘傚锛岄鐩細杈撳叆n琛屾暣鏁帮紝杈撳嚭姣忚鐨勫钩鍧囨暟 锛堝彲閲囩敤鏂规硶浜岋級鍙傝冧唬鐮侊細...
  • C璇█鏁扮粍杈撳叆銆傘
    绛旓細C璇█鏁扮粍杈撳叆鏄浉鍚岀被鍨嬬殑銆佹暟閲忔湁闄愮殑鑻ュ共涓彉閲忛氳繃鏈夊簭鐨勬柟娉曠粍缁囪捣鏉ョ殑涓绉嶄究浜庝娇鐢ㄧ殑褰㈠紡銆傛暟缁勫睘浜庝竴绉嶆瀯閫犵被鍨嬶紝鍏朵腑鐨勫彉閲忚绉颁负鏁扮粍鐨勫厓绱犮傛暟缁勫厓绱犵殑绫诲瀷鍙互鏄熀鏈暟鎹被鍨嬶紝涔熷彲浠ユ槸鐗规畩绫诲瀷鍜屾瀯閫犵被鍨嬨傚湪寮曠敤鏁扮粍涓殑鍏冪礌鏃讹紝閲囩敤鏁扮粍鍚峓涓嬫爣]鐨勬柟寮忥紝灏嗗叾涓殑姣忎竴涓厓绱犺涓轰竴涓櫘閫氱殑...
  • c璇█,鐢╬rintf杈撳嚭涓缁存暟缁鐨勮鍙ユ槸浠涔
    绛旓細c璇█锛鐢╬rintf杈撳嚭涓缁存暟缁鐨勮鍙ユ槸printf ("%s", a)锛屽叿浣撹緭鍑轰竴缁存暟缁勭殑鎿嶄綔姝ラ濡備笅锛1銆侀鍏堟垜浠墦寮Visual Studio 2010杞欢锛屾柊寤轰竴涓」鐩2銆佺劧鍚庢垜浠寜鐓у浘绀轰唬鐮杈撳叆鍖呭惈绋嬪簭闇瑕佺敤鍒扮殑澶存枃浠躲3銆佺劧鍚庢垜浠寜鐓у浘绀轰唬鐮佽緭鍏ヤ富鍑芥暟main銆4銆佺劧鍚庢垜浠寜鐓у浘绀轰唬鐮佸畾涔変竴涓竴缁存暟缁勩5銆佺劧鍚庢垜浠...
  • c璇█濡備綍鎹㈣杈撳叆500涓暟鎹祴鍊肩粰涓缁存暟缁
    绛旓細鍦c璇█涓紝鏁扮粍鏄敤鏉ュ鐞嗕竴绯诲垪鐩稿悓绫诲瀷鍏冪礌鐨勯泦鍚堛1銆佺敤鑺辨嫭鍙穥}鐩存帴璧嬪笺2銆佸彧缁欓儴鍒嗗厓绱犺祴鍊硷紝娌℃湁璧嬪肩殑鍏冪礌榛樿璧嬪间负0銆3銆佸鍏ㄩ儴鍏冪礌鍒濆鍖栫殑鏃跺欙紝涓嶆寚瀹氭暟缁勫厓绱犵殑闀垮害銆侰璇█鏄竴闂ㄩ潰鍚戣繃绋嬨佹娊璞″寲鐨勯氱敤绋嬪簭璁捐璇█锛屽箍娉涘簲鐢ㄤ簬搴曞眰寮鍙戙侰璇█鑳戒互绠鏄撶殑鏂瑰紡缂栬瘧銆佸鐞嗕綆绾у瓨鍌ㄥ櫒銆
  • c璇█涓缁存暟缁,鏁扮粍a[20]杈撳嚭涓4琛5鍒?
    绛旓細杩5娆鐨勫彇鍊煎垎鍒负锛0,1,2,3,4 鍥犳寰幆4娆″啓娉曪細for ( i=0;i<4;i++ ) 鍙﹀涓涓惊鐜篃鏄姝 鍙﹀鍙栨暟瑕佸啓锛歛[i*4+k]鑰屼笉鏄痑[i]for ( i=0;i<4;i++ ) { for ( k=0;k<5;k++ ) printf("%d ",a[i*5+k]);printf("\n");} 璇风湅瀹屾暣绋嬪簭鍜岃繍琛岀粨鏋滐細...
  • c璇█,缂栧啓涓涓▼搴忓彲浠杈撳叆浠绘剰涓涓涓缁存暟缁,浠g爜
    绛旓細浣犲ソ锛屼綘鐨勬剰鎬濇槸閫氳繃閿洏杈撳叆鏁扮粍鐨勫厓绱狅紝鐒跺悗灏嗘暟缁勮緭鍑哄悧锛熷鏋滄槸杩欐牱鐨勮瘽锛岄偅涔堟湁涓ょ鏂规硶銆傜涓绉嶏細鍦ㄨ緭鍏ユ暟缁勫厓绱犱箣鍓嶏紝寰楀厛杈撳叆鏁扮粍鐨勯暱搴︺傜浜岀锛氫娇鐢ㄩ摼琛ㄣ傝繖鏃跺氨涓嶉渶瑕佹寚瀹氭暟缁勭殑闀垮害 浜嗐傛垜鍏堢‘瀹氫竴涓嬫槸涓嶆槸杩欐牱锛屽鏋滀綘纭疄鏈夎繖涓渶姹傜殑璇濓紝鎴戝啀缂栧啓浠g爜锛屽ソ鍚楋紵
  • 扩展阅读:c++入门程序代码 ... c语言同时输入多个数 ... c++语言输入多行数据 ... c语言怎么输入多个数 ... c++必背入门代码 ... 维数是基的个数吗 ... c语言怎么输入多行 ... c零基础入门教程 ... c语言如何把一行写到多行 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网