看看我这段代码哪里有问题,C语言? 求C语言大佬帮我看看这段代码哪里有问题

\u5e2e\u6211\u770b\u4e0b\u8fd9\u6bb5\u4ee3\u7801\u54ea\u91cc\u6709\u95ee\u9898\uff0cc\u8bed\u8a00\uff1f

\u6211\u770b\u4e86\u4ee5\u540e\u89c9\u5f97\u69fd\u70b9\u5f88\u591a\uff0c\u4f46\u662f\u5bfc\u81f4\u4f60\u95ee\u9898\u7684\u5c31\u4e00\u70b9\uff1a\u8be5\u7528while\u8bed\u53e5\u505a\u5224\u65ad\u7684\u5730\u65b9\u4f60\u7528\u4e86if\u3002if\u6761\u4ef6\u8bed\u53e5\u662f\u4e0d\u4f1a\u5faa\u73af\u6267\u884c\u7684\uff0c\u7b26\u5408\u6761\u4ef6\u6267\u884c\u4e00\u6b21\u7136\u540e\u5c31\u7ed3\u675f\u4e86\u3002\u5176\u4ed6\u7684\u69fd\u70b9\uff1a
1\u3001\u4e0d\u77e5\u9053\u4f60\u662f\u4e0d\u662f\u5c11\u62f7\u8d1d\u4e86\u4e00\u4e2a\u201c}\u201d\uff0c\u6700\u540e\u5c11\u4e86\u4e00\u4e2a\u3002
2\u3001function\u5168\u90e8\u90fd\u5728main()\u91cc\u9762\u5b9a\u4e49\u7684\u3002\u4e00\u822c\u64cd\u4f5c\uff1a
void menu();
void Basic_information_management();
void Basic_information_input();
\u8fd9\u4e09\u884c\u5728main()\u4e4b\u524d\uff0c\u544a\u8bc9\u7f16\u8bd1\u5668\u6709\u8fd9\u4e48\u4e09\u4e2a\u65b9\u6cd5\u3002\u800c\u65b9\u6cd5\u7684\u5177\u4f53\u5b9e\u73b0\u5728main()\u4e4b\u540e\u3002\u5f53\u7136\u8fd9\u4e9b\u4e0d\u662fbug\uff0c\u800c\u662f\u60ef\u4f8b\uff0c\u5e76\u4e0d\u4e00\u5b9a\u8981\u9075\u5faa\u3002

\u7c7b\u4f3cfor(i=0;i<x*y;i++)\u4e2di<x*y\u8fd9\u79cd\u8868\u8fbe\u4e0d\u80fd\u6b63\u786e\u5730\u7ed9\u52a8\u6001\u4e8c\u7ef4\u6570\u7ec4\u8d4b\u503c\uff0c\u56e0\u4e3a\u52a8\u6001\u4e8c\u7ef4\u6570\u7ec4\u7684\u7b2c\u4e00\u7ef4\u662f\u6307\u9488\uff0c\u8fd9\u6307\u9488\u6307\u5411\u54ea\u91cc\u662f\u7b2c\u4e8c\u6b21\u7528\u51fd\u6570\u5206\u914d\u7684\uff0c\u901a\u5e38\u662f\u4e0d\u8fde\u7eed\u7684\uff0c\u6240\u4ee5\u4e0d\u80fd\u7b80\u5355\u5730\u964d\u4e3a\u4e00\u7ef4\u6570\u7ec4\u8d4b\u503c\u3002\u5c31\u7528\u53cc\u5faa\u73af\u8d4b\u503c\u5c31\u5e94\u8be5\u6ca1\u6709\u95ee\u9898\u4e86\u3002

程序写的很好,
看感觉哪里不对,应该是在第二套for循环时改变了原来数组的值,a=*(p+i)这个有感觉不会,
你时试着在这里输出一次原数组看看结果,
程序就是要不断调试积累经验,会学到更多,

另外我还有一种思路供参考,
你的是,先找最好,再找最小的第一列,这个不用指针还好用,既然用了指针,就可以一次完成,
一套for循环,外层循环将指针停留在没行数的第一个,内层函数通过产量加i来对比,对比出小的,就t,和*b一起更换,(*a用于遍历,*b停留),这样一次循环就够了,

#include<stdio.h>
#define N 10

int *getMinRow(int (*p)[4], int m) {
int *a,i = 0,j = 0;
int t = *(*(p + i) + j);
for(i = 0; i < m; i++)
for(j = 0; j < 4; j++) {
if(t > *(*(p + i) + j))
t = *(*(p + i) + j);
}
for(i = 0; i < m;i++)
for(j = 0; j < 4;j++) {
if(t == *(*(p + i) + j)) a = *(p + i);
return (a);
}
return NULL;
}

int main() {
int p[N][4]; //定义数组时,其维数必须为常量。所以用m是错误的,这里用常量N代替
int i,j,m,*a;
printf("m = ");
scanf("%d",&m);
if(m <= 0 || m >= 10) m = N;
for(i = 0; i < m;i++)
for(j = 0; j < 4;j++)
scanf("%d",&p[i][j]);
a = getMinRow(p,m);
for(i = 0;i < 4;i++)
printf("%d ",*(a+i));
printf("\n");
return 0;
}

#include<stdio.h>

int* getMinRow(int (*p)[4], int m)
{
int i=0,j=0;
int t=*(*(p+i)+j);
for(i=0;i<m;i++)
for(j=0;j<4;j++)
{
if(t>*(*(p+i)+j))
t=*(*(p+i)+j);
}
for (i = 0; i < m; i++)
for (j = 0; j < 4; j++)
{
if (t == *(*(p + i) + j))
return *(p + i);
}
}
int main()
{
int m;
scanf("%d", &m);
int p[m][4];
int i, j;
for (i = 0; i < m; i++)
for (j = 0; j < 4; j++)
scanf("%d", &p[i][j]);
int* a;
a = getMinRow(p, m);
for (i = 0; i < 4; i++)
printf("%d ", *(a + i));
return 0;
}
你试试 虽然我说不明白

  • 鏉ュ府鎴鐪嬬湅C璇█杩欐浠g爜鏈閿欏悧?缁撴灉鏄粈涔堝浘妗?
    绛旓細绗簩涓猣or寰幆濡傛灉鏄痠++灏辨槸姝诲惊鐜紝濡傛灉鏀逛负j++鏄竴涓彵褰
  • C璇█ 鐪嬬湅杩欎簺浠g爜 鍝噷閿欎簡
    绛旓細浣犵殑姹傛暣鏁扮殑閫嗗簭杈撳嚭鐨C璇█绋嬪簭鎴戝府浣犳敼瀹屼簡锛屼綘鐪嬬湅鍚(鏀瑰姩鐨勫湴鏂硅娉ㄩ噴)include<stdio.h>int reverse(int n);int main(void){ int x,y; scanf("%d %d",&x,&y);//杩欓噷%d鍜%d涔嬮棿鍔犵┖鏍硷紝杈撳叆鏃朵篃鍔犵┖鏍兼瘮濡123 1234 printf("%d鐨勯嗗悜鏄%d\n",x,reverse(x)); printf("%d鐨勯嗗悜鏄...
  • 鎴戣繖涓狢璇█绋嬪簭鏄鍝噷鍑洪敊浜?
    绛旓細浣犵殑杈撳叆鏍煎紡鏄"%d+%d"锛岄偅涔堜綘杈撳叆蹇呴』瀵瑰簲鐨勫啓 2+3锛屼腑闂寸殑+涓嶈兘鐪佺暐
  • 鎴戞槸c璇█灏忕櫧,闂棶澶х甯垜鐪嬬湅缂栧啓鐨勭畝鍗曠▼搴杩欏摢閲鍑洪敊浜?_鐧惧害...
    绛旓細鍚屾牱鐨浠g爜锛#include<stdio.h> 杈撳叆浠g爜鏃跺拷瑙嗚緭鍏ユ硶闅愯棌鐨勯敊璇 琛ㄩ潰涓婄湅閮芥槸涓鏍风殑浠g爜锛屼絾鏄浜岃灏辨湁閿欒锛屾槸鍏ㄨ鍜屽崐瑙掔殑涓嶅悓锛屽啀鐪嬶細姝g‘缂栬瘧杩愯 鎵浠ヤ綘鐨勪唬鐮佹病鏈変换浣闂锛浣嗘槸瑕佹敞鎰忎唬鐮佽緭鍏ョ殑鏂规硶銆備互鍓嶅洖绛斾簡寰堝锛屾湁鏃堕棿鍙互鐪嬬湅鎴鏈杩戝洖绛攃璇█闂锛氱綉椤甸摼鎺 缃戦〉閾炬帴 缃戦〉閾炬帴 缃戦〉閾炬帴...
  • 姹傚ぇ浣府鎴戠湅涓涓C璇█浠g爜鍝噷鍑洪敊浜?
    绛旓細printf("Input %d numbers:\n",n); for(i=0;i<n;i++) scanf("%d",&a[i]);res=a; printf("Input x:\n"); scanf("%d",&x);for(i=0;i<n;i++,res++) if(*res==x) break;if ( i<n ) printf("%d鏄痑鏁扮粍涓%d涓厓绱",x,i); else printf("a鏁扮粍涓病鏈夋壘鍒%d\n"...
  • 甯挶鐪嬬湅浠g爜鍝噷鏈夐棶棰?C璇█
    绛旓細scanf鍑芥暟鐨勮緭鍏ワ紝涓嶆槸浣犻偅鏍疯緭鍏ョ殑锛岀浜屼釜鍙傛暟鏄釜鎸囬拡銆俰nclude<stdio.h>#define size 50void Swap(int *x, int *y);int main(){ int apple[size], lunar[size], x, i; printf("璇疯緭鍏ヤ釜鏁:\n"); scanf("%d", &x); //杩欓噷鏀逛簡 for (i = 0; i<x; i++) { printf(...
  • 甯垜鐪嬬湅杩機璇█浠g爜鍝噷鍑洪敊浜,鍒ゆ柇绱犳暟鐨?
    绛旓細if(n%a==0)n=0;break;涓婅竟鐨3琛屾槸涓浣擄紝if鐢ㄥぇ鎷彿鍖呰捣鏉ヤ笅杈2琛 杩樻湁浣犱笂杈瑰垽鏂墦鍗版槸鍚︾礌鏁版墦鍗板弽浜==0涓嶆槸绱犳暟
  • C璇█灏忕櫧:璇峰ぇ绁鐪嬬湅杩欐浠g爜鐨勯敊璇湪鍝噷?杩愯鍚庡彧鏈塧[1]鏄鐨...
    绛旓細%d]=%d",i, a[i]);}system("pause");}鎴戝幓闄や簡浜涗綘浠g爜涓婁笉蹇呰鐨勮鍙ワ紝浣犱笂闈唬鐮佹槸娌℃湁閿欑殑锛屽氨鏄綘鐨勮緭鍏ユ柟寮忎笉瀵癸紝灏辨嬁浣犵殑浠g爜鏉ヨ锛屼綘搴旇杩欐牱杈撳叆鏁版嵁1绌烘牸2绌烘牸3绌烘牸... 锛堟瘡杈撳叆涓涓暟瀛楀氨绌烘牸涓涓嬶紝鑰屼笉鏄偅涓楀彿锛夛紝杩樻湁閭d釜涓嶈<=10锛岃鏀逛负<10鍥犱负0鍒9灏辨槸鍗佷釜 ...
  • 杩欐C璇█浠g爜鍝噷鍑闂浜,涓轰粈涔堜竴杩愯杈撳叆鏁板瓧鍜寉鎴杗鍚庡氨寮瑰嚭宸插仠姝...
    绛旓細鏈変袱涓棶棰橈紝棣栧厛锛岃緭鍏ュ瓧绗﹀瀷鏃讹紝scanf("%c",&a);杩欏効鏈夐棶棰橈紝搴旇scanf(" %c",&a)锛屽湪%c鍓嶉潰绌轰竴涓嬶紝鍚﹀垯鎺ュ彈涓嶅埌銆傜浜岋紝printf("閭祫鏄%s鍏僜n",s);杩欏効鏈夌偣闂浜嗐傛敼涓涓嬪氨濂解︹﹁寰楀ソ璇勫摝锛屼笂闈袱妤奸兘娌℃彁鍑虹涓涓棶棰橈紝鐪嬫潵娌℃湁浠旂粏鐪嬨
  • 鎴戠紪鐨杩欐C璇█浠g爜鍝噷閿欎簡 缁撴灉涓嶅
    绛旓細include<stdio.h> include<math.h> main (){ float a,b,c,r,s,x;printf("鏈▼搴忕敤浜庤绠椻柍鐨勯潰绉痋n璇疯緭鍏モ柍鐨勪笁杈归暱:a,b,c=");scanf("%f,%f,%f",&a,&b,&c);if ((a+b>c)&&(a+c>b)&&(b+c>a)){x=1/2.0*(a+b+c);r=x*(x-a)*(x-b)*(x-c);s=(float)sqrt...
  • 扩展阅读:黄色代码复制粘贴 ... 一键生成代码免费 ... 免费网站代码大全 ... 免费直接进入代码 ... 可直接进入网站的代码 ... 免费复制100个代码 ... 浏览器打开网站 ... 50款直接进入网站代码 ... 免费小网站代码 ...

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