0$房天下问答|C语言编程如何实现:由15个正整数排成一圈,找出连续的四个数,它们的和是最大的(不$https://m.fang.com/ask/ask_1026959.html$https://static.soufunimg.com/common_m/m_public/201511/images/asksharedefault.png
packc/pages/ask/detail/detail?askid=1026959
共1个回答
-
-
-
aogege
丨Lv 4
//---------------------------------------------------------------------------#include <stdio.h>#include <stdlib.h>#include <time.h>#define MAX 15struct node{ int d; struct node *next;};long int ts(struct node *a){ int i=0; long int s=0; for (i = 0; i<4; i++) { s+=a->d; a=a->next; } return s;}void prt(struct node *a){ int i; for (i = 0; i<4; i++) { printf("%d ",a->d); a=a->next; } putchar('\n');}int main(void){ struct node a[MAX]; int i,m; long int s,t; srand(time(NULL)); printf("%d个整数是:\n",MAX); for (i = 0; i<MAX; i++) { a[i].d=rand()%100; if (i<MAX-1) { a[i].next=&a[i+1]; } else a[i].next=&a[0]; printf("%d ",a[i].d); } putchar('\n'); for (m=i = 0; i<MAX; i++) { if (!i) { s=t=ts(&a[i]); } else if (s<(t=ts(&a[i]))) { s=t; m=i; } } printf("\n和最大的四个相邻数为:\n"); prt(&a[m]); printf("\n这四个数的和是:\n%d\n",s); return 0;}//---------------------------------------------------------------------------
免责声明:问答内容均来源于互联网用户,房天下对其内容不负责任,如有版权或其他问题可以联系房天下进行删除。

关注成功