一道C语言难题,没有思路,请教大神怎么做? 一道C语言题目,很难,对我很重要,但是我没有思路,希望大家帮...

c\u8bed\u8a00 \u8fd9\u9053\u9898\u8be5\u600e\u4e48\u505a?\u6ca1\u6709\u601d\u8def

\u6700\u5927\u5b50\u77e9\u9635\uff0c\u6700\u5927\u8fde\u7eed\u5b50\u6570\u7ec4\u8fdb\u9636\uff0c\u52a8\u6001\u89c4\u5212\u521d\u7ea7\uff0cpoj1050
\u9898\u76ee\u63cf\u8ff0\uff1a\u73b0\u7ed9\u51fa\u4e00\u4e2aN*N\u77e9\u9635\uff0c\u8981\u6c42\u6c42\u51fa\u62e5\u6709\u6700\u5927\u548c\u7684\u5b50\u77e9\u9635\u7684\u548c\u3002
\u4f8b\u5982\uff1a

\u8fd9\u6837\u7684\u4e00\u4e2a\u77e9\u9635\uff0c\u6700\u5927\u5b50\u77e9\u9635\u7684\u548c\u4e3a15\uff1b
\u6b64\u9898\u53ef\u4ee5\u8ba9\u4eba\u8054\u60f3\u5230\u6c42\u6700\u5927\u8fde\u7eed\u5b50\u6570\u7ec4\uff0c\u6c42\u6700\u5927\u5b50\u6570\u7ec4\u5728\u4e0a\u4e00\u7bc7\u6587\u7ae0\u4e2dhttp://www.cnblogs.com/tz346125264/p/7560708.html\u3002
\u5206\u6790\uff1a\u6700\u5927\u5b50\u77e9\u9635\u53ef\u4ee5\u770b\u4e3a\u6c42\u6700\u5927\u8fde\u7eed\u5b50\u6570\u7ec4\u62d3\u5c55\u5230\u4e8c\u7ef4\u6570\u7ec4\u4e0a\uff0c\u56e0\u4e3a\u77e9\u9635\u7684\u6027\u8d28\u540c\u6837\u5728\u6a2a\u5411\u7ad6\u5411\u4e0a\u9700\u8981\u8fde\u7eed\uff0c\u90a3\u4e48\u53ef\u4ee5\u60f3\u529e\u6cd5\u5c06\u8fd9\u4e2a\u4e8c\u7ef4\u6570\u7ec4\u7b80\u5316\u4e3a\u6c42\u8fde\u7eed\u5b50\u6570\u7ec4\u3002
\u601d\u8003\uff1a
1.\u8981\u6c42\u6700\u5927\u5b50\u77e9\u9635\uff0c\u5fc5\u987b\u4fdd\u8bc1\u6bcf\u4e2a\u77e9\u9635\u90fd\u88ab\u6d4f\u89c8\u5230\uff0c\u4e3a\u4e86\u4fdd\u8bc1\u8fd0\u884c\u65f6\u95f4\u5c3d\u53ef\u80fd\u4e0d\u8981\u91cd\u590d\u6d4f\u89c8\u540c\u4e00\u77e9\u9635\uff0c\u6545\u9700\u5236\u5b9a\u89c4\u5219\uff0c\u89c4\u5219\u5b9a\u4e3a\u7528i\u8868\u793a\u8d77\u59cb\u884c\uff0cj\u8868\u793a\u7ec8\u6b62\u884c\uff0cj>=i\uff0c\u518d\u4f7f\u7528k\u5bf9\u5217\u8fdb\u884c\u904d\u5386\uff0c\u5373\u53ef\u8986\u76d6\u6240\u6709\u77e9\u9635\u3002
2.\u8fdb\u884c\u5316\u7b80\u6210\u6c42\u8fde\u7eed\u5b50\u6570\u7ec4\u64cd\u4f5c\uff0c\u4ee5\u4e0a\u4e3a\u4f8b\uff0c\u8bbei=2,j=4\u90a3\u4e48\u8fd9\u4e2a\u77e9\u9635\u662f\u8fd9\u6837\uff0c\u90a3\u4e48\u5316\u4e3a\u8fde\u7eed\u5b50\u6570\u7ec4\u5373\u4e3a4\uff089-4-1\uff09\uff0c11\uff082+1+8\uff09\uff0c-10\uff08-6-4+0\uff09\uff0c1\uff082+1-2\uff09
\u6c42\u8fd9\u4e2a\u8fde\u7eed\u6570\u7ec4\u7684\u6700\u5927\u8fde\u7eed\u5b50\u6570\u7ec4\u548c\u4fbf\u662f\u8fd9\u4e2a\u77e9\u9635\uff08\u4ee5i=2\u4f5c\u4e3a\u8d77\u59cb\u884c\uff0cj=4\u4f5c\u4e3a\u7ec8\u6b62\u884c\uff09\u7684\u6700\u5927\u5b50\u77e9\u9635\uff0c\u5982\u6b64\uff0c\u6574\u4e2a\u77e9\u9635\u7684\u6700\u5927\u5b50\u77e9\u9635\u4fbf\u662f\u8fd9\u4e9b\u6700\u5927\u5b50\u77e9\u9635\u4e2d\u7684\u6700\u5927\u503c\u3002
\u4e0a\u4ee3\u7801\uff1a

#include#includeusing namespace std;int main(){ int n; int a[101][101]; int temp[101];cin>>n; for(int i=1;i>a[i][j]; /*\u4e3a\u4ec0\u4e48\u8981\u8fdb\u884c\u76f8\u52a0\uff1f\u5728\u5316\u7b80\u4e3a\u6c42\u8fde\u7eed\u6700\u5927\u5b50\u6570\u7ec4\u65f6\uff0c\u9700\u8981\u5c06i\u5230j\u884c\u7684\u6570\u8fdb\u884c\u76f8\u52a0sum(i,j)\uff0c\u800c\u8fd9\u4e2asum{i,j}\u53ef\u6709sum{0,j}-sum{0,i}\u5f97\u5230\u4e3a\u6b64\u63d0\u524d\u505a\u51fa\u76f8\u52a0\u65b9\u4fbf\u4e4b\u540e\u5316\u7b80*/a[i][j]+=a[i-1][j];}} int max = -10000; for(int i=1;i=0){temp[k]=temp[k-1]+a[j][k]-a[i][k];}else{temp[k]=a[j][k]-a[i][k];} if(temp[k]>max){max = temp[k];}}}}cout<<max<<endl; return 0;}

\u591a\u770b\u4e66\u3001\u591a\u601d\u8003\u3002\u7f16\u7a0b\u7684\u601d\u7ef4\u65b9\u5f0f\u4e5f\u662f\u9700\u8981\u953b\u70bc\u7684

定义数组
循环,初始化,可以用random
选择法排序,双重循环搞定,不会的话随便搜一下,一堆样例
输入新值
从后向前循环比较
如果当前位置值比新输入的大,那么后移一位
否则退出循环
退出位置的下一个位置就是插入点
大致就是
for(i=N-2;a[i]>v &&i>=0;i--)
a[i+1]=a[i];

a[i+1]=v;

#include <stdio.h>
#include <conio.h>

#define ARR_LEN 255 /*数组长度上限*/
#define elemType int /*元素类型*/

#define status int /* 状态型变量 */
#define OVERFLOW -1 /* 溢出状态码 */
#define ERROR 0 /* 错误状态码 */
#define OK 1 /* 正确状态码 */

/* 选择排序 */
/* 1. 将初始数组分为两段,前段为已排序数组,后段为未排序数组 */
/* 2. 在未排序数组中寻找最值元素,将其然后放到已排序数组的末尾 */
/* 3. 对所有元素均重复以上步骤,直至最后一个元素 */
/* elemType arr[]: 排序目标数组; int len: 元素个数 */
void selectionSort (elemType arr[], int len) {
elemType temp;
int i, j, k;
for(i=0; i<len-1; i++) { /*外循为排序趟数,len个数进行len-1趟 */
     k = i; /* 假设当前趟的第一个数为最小值,其下标记在k中(升序为寻找最小值,逆序反之) */
     for(j=i+1; j<len; j++) /* 从下一个数到最后一个数之间依次判断 */
if(arr[j] < arr[k]) /* 若k之后有更小的元素 */
k = j; /* 则将其下标记更新至k中 */
if(k != i) { /* 若k不为最初的i值,说明在其后找到比其更小的元素 */
temp = arr[k];
arr[k] = arr[i];
arr[i] = temp;
} /* 则交换最小值和当前数组第一个元素 */
}
}

/* 校验数组是否有序 */
int isOrdered (elemType arr[], int len) {
elemType *p = arr;
while (p < arr+len-1) { /* 扫描数组至倒数第二个元素 */
if (*p > *(p+1)) /* 当前元素大于后继元素 */
return 0;
p++;
}
return 1;
}

/* 有序数组中插入新元素 */
status arrInsert (elemType arr[], int *len, elemType e) {
elemType *p = arr, *q = arr + *len;
if (*len >= ARR_LEN) /* 数组空间溢出 */
return OVERFLOW;
if (isOrdered (arr, *len) == 0) /* 数组无序 */
return ERROR;
while (p < arr+*len) { /* 寻找插入位置 */
if (*p >= e)
break;
p++;
}
while (q >= p) { /* p位置及之后的元素均后移一位 */
*(q+1) = *q;
q--;
}
*p = e; /* e插入p位置 */
(*len)++; /* 数组长度+1 */
return OK; 
}

/* 打印数组 */
/* elemType arr[]: 打印目标数组; int len: 元素个数 */
void printArray (elemType arr[], int len) {
int i;
for (i=0; i<len; i++)
printf ("%d", arr[i]);
putchar ('
');
}

int main (void) {
elemType arr[ARR_LEN] = {3,5,1,-7,4,9,-6,8,10,4};
    int len = 10;
    elemType e;
    status insertStatus;
    
printf ("原始数组:
");
printArray (arr, len);
putchar ('
');

printf ("排序后数组:
");
selectionSort (arr, len);
printArray (arr, len);
    putchar ('
');
    
    printf ("输入要插入的元素值:");
    scanf ("%d", &e);
printf ("插入元素%d:
", e);
insertStatus = arrInsert (arr, &len, e);
if (insertStatus == OK)
printArray (arr, len);
else if (insertStatus == OVERFLOW)
printf ("数组空间溢出!
");
else if (insertStatus == ERROR)
printf ("数组无序!
");
    
getch (); /*屏幕暂留*/
return 0;
}

如有问题,可以点击头像联系我



  • c璇█闅鹃,姹傚姪鍟
    绛旓細瑙夊緱绗5棰樿繕鏈夌偣濂界帺,鎵浠ュ仛浜嗕釜.搴旇娌¢棶棰樼殑./*楠岃瘉璋疯鐚滄兂銆傛棩鏈暟瀛﹀璋疯闈欏か鍦ㄧ爺绌惰嚜鐒舵暟鏃跺彂鐜颁簡涓涓鎬幇璞★細瀵逛簬浠绘剰涓涓嚜鐒舵暟n锛岃嫢n涓哄伓鏁帮紝鍒欏皢鍏堕櫎浠2锛涜嫢n涓哄鏁帮紝鍒欏皢鍏朵箻浠3锛岀劧鍚庡啀鍔1銆傚姝ょ粡杩囨湁闄愭杩愮畻鍚庯紝鎬诲彲浠ュ緱鍒拌嚜鐒舵暟1銆備汉浠妸璋疯闈欏か鐨 杩欎竴鍙戠幇鍙仛鈥滆胺瑙...
  • C璇█鍒濆鑰呭啓绋嬪簭娌℃濊矾鎬庝箞鍔炲晩?
    绛旓細瑕佸涔C璇█銆傞鍏堣鏄庝綘鎯冲仛缂栫▼锛屾垜涔熸槸鍒氬C涓嶄箙锛屽墠鏈熸壘鏂瑰悜鎵句簡涓娈垫椂闂达紝浣嗘槸鐜板湪鐪嬫潵锛屽涔犵殑鏁堟灉杩樹笉閿欍傛垜灏辨槸鐪嬭棰戞暀瀛﹂厤鍚圦Q缇ら厤鍚堜功鏉ュ鐨勶紝鎹峰緞鍊掓槸娌℃湁锛鏈韩鑷繁涓婄彮锛屽彧鑳戒笉鏂殑鍒╃敤涓嬬彮鍚冨畬楗殑鏃堕棿鏉ュ锛屽緢鑻︼紝鍥犱负姣曠珶鏄紤鎭殑鏃堕棿鐢ㄦ潵鍏呯數锛屼竴瀹氳鍧氭寔浣忥紝涓嶆柇鐨勬暡浠g爜锛岀湅浠g爜...
  • 涓閬揅璇█缂栫▼棰,姹傝В棰鎬濊矾
    绛旓細绠楁硶锛氬厛鍒嗙被绛涢夋棭鏅氱殑鎵撳崱 鍒嗙被澶勭悊锛氭棭鍗★紝涓娆℃湁鏁堬紝璁炬爣蹇椾綅銆備互鏈夋爣璁颁綅鐨勮褰曢夋嫨鏈夋晥鐨勮褰曪紙浠ュ悓涓澶╁仛鏍囪锛屼富瑕佹槸鍘婚櫎澶氬埛鐨勬儏鍐碉級銆傛櫄鍗″悓鐞嗭紝绛涢夊嚭鏈夋晥绾綍锛岀劧鍚庨愯姣斿锛屼緥濡傦細1鍜2杈冿紝鐒跺悗2鍜3姣旇緝锛屽ぇ浜庡崐灏忔椂涓烘湁鏁堛傦紙绛涢夎鎸夎寖鍥寸缉灏忥細1.棣栧厛绛涢夊湪鍚屼竴澶╂櫄涓婃椂娈电殑鎵撳崱璁板綍锛2...
  • 鑿滈笩璇锋暀涓閬揅璇█棰
    绛旓細妤间富鎮ㄥソ锛岃涓嬫垜鐨勮В棰鎬濊矾锛棣栧厛锛岃繖鏄涓閬鍑芥暟璋冪敤鐨勯锛屽厛浠巑ain锛堬級鍑芥暟璇昏捣锛屽畾涔変簡鏁村舰鍙橀噺a=3锛宐=4锛屼笅闈㈡槸杈撳嚭璇彞锛岃緭鍑虹殑鏄竴涓嚱鏁帮紝鎵浠ヨ烦鍒版渶寮濮嬬殑#define 锛屽皢瀹炲弬鐨勫间紶閫掔粰褰㈠弬锛屽嵆X鏇挎崲鎴恆+=2锛岃繖鏃禷=5锛孻鏇挎崲鎴恇++锛岀劧鍚嶺-Y锛屽厛鎶婅繖涓紡瀛愬畬鏁寸殑鍐欏嚭鏉ワ紝灏辨槸 5-b+...
  • 涓閬揅璇█鐨勯鐩,璇峰悇浣嶅嚭鍑鎬濊矾,璋㈣阿浜
    绛旓細涓汉瑙夊緱搴旇鑰冭檻椤烘椂閽堢Щ鍔ㄥ拰閫嗘椂閽堢Щ鍔ㄣ傜劧鍚庢病蹇呰杞负瑙掑害锛 鍙閮借浆涓1鍒60涔嬮棿鐨勬暟(鎸囧悜鐨勭偣)姣斿3鐐癸紝 瀹為檯鎸囧悜涓15 11鐐癸紝鎸囧悜涓55 閭d箞灏辨槸浠15绉诲姩鍒55.12 30 45 鍒嗗埆鎸囧悜60 30 45 濡傛灉涓変釜閽堟寚鍚戦兘鍦15鍒55涔嬪锛屾垨閮藉湪涔嬪唴锛岄偅涔堝彲浠ョЩ鍔ㄣ 鍚﹀垯涓嶈兘銆傛槑鏄 30 45鍦ㄤ箣鍐咃紝 60鍦...
  • C璇█鍒濆鑰璇锋暀涓涓皬闂銆
    绛旓細鍙互鍔犱竴涓爣蹇楀彉閲 int flag=0;琛ㄧず鏄惁涓虹涓涓笺傜劧鍚 寰幆浣撻噷闈㈡敼鎴 if(fun(i)){ if(flag == 0)//绗竴涓 { printf("%d", i); flag = 1; } else { printf(" %d", i);//鎹釜鎬濊矾銆 闄や簡绗竴涓互澶栵紝鍓╀綑姣忎釜锛屽墠闈㈠甫绌烘牸銆 }} 鍥犱负鍒ゆ柇鏈鍚庝竴...
  • 鑷C璇█閬囧埌闅鹃..鎮祻
    绛旓細1锛屼粠鏈灏忥紙鏈澶э級寮濮嬫壘鍒扮涓涓瘮鎻掑叆鏁版嵁澶э紙灏忥級鐨勬暟鎹殑浣嶇疆锛屼粠鍙︿竴绔紑濮嬪悗绉绘瘡涓暟鎹洿閬撴彃鍏ヤ綅缃紝鎻掑叆鏁版嵁銆2锛屾渶绠鍗曠殑閬嶅巻锛屼笉澶氳浜嗐3锛屼簩缁存暟缁勭殑瀵逛綅鐩稿姞锛屼娇鐢ㄤ簩閲嶅惊鐜傞鐩兘涓嶉毦锛屾參鎱㈣皟锛屽鏄撹В鍐崇殑锛屾垨鑰呮壘鎵剧煡閬撶殑绫讳技鐨勪互瑙e喅闂銆
  • C璇█缂栫▼,缃戠粶鏁欏鍗冲皢鍏抽棴(9.1),涓閬闂浠g爜杩樻槸娌℃湁濂界殑鎬濊矾,鍦...
    绛旓細include <stdio.h> include <string> void main(){ bool yh_d = false;//鍗曞紩鍙 bool yh_s = false;//鍙屽紩鍙 bool zs_at = false;// bool zs_left = false;//((bool zs_right = false;//))char line[1024];int l_line = 0;//log line int p_line = 0;//phy line int ...
  • 涓閬揅璇█缂栫▼棰,楹荤儲澶у甯垜鐪嬬湅闂鍑哄湪鍝噷?
    绛旓細100],s2[100];int i,j,k=1;gets(s1);gets(s2);for (i = 0;i<strlen(s1);++i){HashTable1[s1[i]] |= 1;}for (i = 0;i<strlen(s2);++i){HashTable2[s2[i]] |= 1;}for (int i = 0;i<256;++i){if (HashTable1[i] != HashTable2[i]){printf("%c",i)...
  • C璇█鐨涓閬棰,鎬ユ眰瑙c
    绛旓細鎴戝湪绋嬪簭濡備笅锛歩nclude "stdio.h"include <string.h> int main(){ int k=0,i, j;char a[100];int flag = 1;//鐢ㄦ潵璁剧疆杈撳叆鍥炶溅绗﹀彿鐨勬爣蹇 for(k=0;flag!= 0;k++)//flag涓0鏃跺仠姝㈠惊鐜 { scanf("%c",&a[k]);if (a[k] == 10)//濡傛灉鏈夊洖杞︾鍙疯緭鍏,flag鐨勫煎彉涓0 { flag...
  • 扩展阅读:免费答题扫一扫 ... 扫一扫一秒出答案 ... 学法减分答案扫一扫 ... 答题神器一扫就出答案 ... 扫一扫题目出答案 ... 免费扫一扫找答案 ... 能拍题找答案的软件 ... 查答案扫一扫 ... 免费拍照答题一秒出答案 ...

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