C语言的题目

C\u8bed\u8a00\u9898\u76ee

#include
#define N 100
int main()
{
int n,num[N][N];
printf("\u8f93\u5165\u77e9\u9635\u5927\u5c0f:\n");
scanf("%d",n);
printf("\u8f93\u5165\u77e9\u9635\u6570\u636e:\n");
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
scanf("%d",num[i][j]);}
}
//\u6c42\u5bf9\u89d2\u7ebf\u5143\u7d20\u548c
int sum=0;
for(int k=0;k<n;k++){
sum+=num[k][k];
}
//\u6c42\u6700\u5927\u6700\u5c0f\u5143\u7d20
int max,min;
max=min=num[0][0];
for(int m=0;m<n;m++){
for(int t=0;t<n;t++){
if(num[m][t]>max)max=num[m][t];
if(num[m][t]<min)min=num[m][t];}
}
//\u77e9\u9635\u8f6c\u7f6e
int temp;
for(int a=0;a<n;a++){
for(int b=0;b<a;b++){
temp=num[a][b];
num[a][b]=num[b][a];
num[b][a]=temp;

}
}
return 0;
}
\u6211\u5168\u5199\u5230\u4e3b\u51fd\u6570\u91cc\u9762\u4e86 \u90a3\u4e09\u4e2a\u529f\u80fd\u4f60\u53ef\u4ee5\u5199\u4e09\u4e2a\u5b50\u51fd\u6570

int max3ad(int *s,int n)
{
int i,j;
int sum[20]={0};int min = 0;
for(i=0;i<n-2;i++)
{
for(j=0;j<3;j++ )
{
sum[i] += s[i+j];
}

}
sum[i+1]='\0';
min = sum[0];
for(i=0;i<n-2;i++)
{
if(sum[i]<min)
{
min = sum[i];
}

}
return min;
}

#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 100

typedef struct Node
{
int data;//存储猴子编号
struct Node *next;
}*List;

/* 用链表来得出大王的序号 */
int LinkedList(int num_monkey,int number);

/* 用顺序表来得出大王的序号 */
int SequenceList(int num_monkey,int number);

/* 创建循环单链表 */
List CreateList(int n);

void main()
{
int m, n, way, king;
printf("请输入猴子个数:");
scanf("%d", &n);
//printf("请输入要报的数:");
//scanf("%d", &m);
m=3;

while (1)
{
printf("\n请选择解决问题的方法:\n");
printf("1.单链表\n");
printf("2.顺序表\n");
scanf("%d", &way);

if (way == 1)
{
king = LinkedList(n,m);
break;
}
else if (way == 2)
{
king = SequenceList(n,m);
break;
}
else
{
printf("输入不合法!\n");
}
}
printf("%d号猴子是大王\n", king);
}

/* 创建循环单链表 */
List CreateList(int n)
{
int i;
List head, p;
head = (List)malloc(sizeof(struct Node));
head->next = head;
for (i = 1; i < n; ++i)
{
p = (List)malloc(sizeof(struct Node));
p->next = head->next;
head->next = p;
}
p = head;
for (i = 0; i < n; ++i)
{
p->data = i+1;
p = p->next;
}
return head;
}

/* 用链表来得出大王的序号 */
int LinkedList(int num_monkey,int number)
{
int i,j;
List head = CreateList(num_monkey);
List tail = head;//用来存储最后一个节点的地址
List out,p;//out指向要淘汰的节点,p指向其前一个节点

/* 让tail指向最后一个节点 */
for (i = 1; i < num_monkey; i++)
{
tail = tail->next;
}

/* 淘汰的猴子个数比总个数少1,报数一轮就淘汰一个猴子,所以需要报数的轮数比
猴子总个数少1*/
for( i = 1; i < num_monkey; i++ )
{
p = tail;
/* 让p指向要淘汰的猴子的前一个 */
for ( j = 1; j < number; j++ )
{
p = p->next;
}
out = p->next;
/* 如果最后一个猴子被淘汰就更新尾节点 */
if (out == tail)
{
tail = p;
}
p->next = out->next;
printf("猴子%d淘汰\n", out->data);
free(out);//删除被淘汰猴子的节点
}
return p->data;
}

/* 用顺序表来得出大王的序号 */
int SequenceList(int num_monkey,int number)
{
/* 用来表示个猴子的信息,如果猴子出局就存储0,否则存储1。第一个元素不使用 */
int monkey[MAXSIZE];
/* 用来表示出局的猴子的序号 */
int out = 1;
/* 用来表示当前猴子的个数 */
int num_now = num_monkey;
int i,j;
for (i = 0; i < num_monkey+1; i++)
{ /* 开始将每个元素置1 */
monkey[i] = 1;
}

/* 报数次数比猴子个数少一 */
for (i = 1; i < num_monkey; i++)
{
out = 1;
/* 报数整个过程 */
for (j = 0; j < number; j++)
{
/* 如果序号数大于猴子个数,表示循环了一圈,那么去掉那个圈数 */
if (out > num_monkey)
out -= num_monkey;

/* 之前已经出局的猴子不参加报数 */
while(monkey[out] == 0)
{
out ++;
/* 如果序号数大于猴子个数,表示循环了一圈,那么去掉那个圈数 */
if (out > num_monkey)
out -= num_monkey;
}
out++;

}
out--;//报完数后out应该是被淘汰的猴子的下一个,所以要向前移动

monkey[out] = 0;
printf("猴子%d淘汰\n",out);

}
while(monkey[out] == 0)
{
out ++;
/* 如果序号数大于猴子个数,表示循环了一圈,那么去掉那个圈数 */
if (out > num_monkey)
out -= num_monkey;
}
return out;
}

都调试过给你都说不行.
有点无语了,
要是下面的不对.
最多是说序号可能不是从1开始
而是从0开始的.
你吧结果加1
或者初始化的时候..序号+1,输出的时候序号加1就可以了

另外指出我们有问题.至少要反馈一下.那里不满足你的要求
//////////////////////////////////////////////
//l,2楼不是用动态申请.有上限
//3楼用链表。如果没有现成的链表结构写起来比较多
//还是我的少。
//如果有现成链表是简单
//没有链表用着循环好了,也容易
//帮你调试过了。。不过是012不是123.号码也是从0开始的
#include <stdio.h>
#include <stdlib.h>

typedef struct {
int num;//记录号码
int is_out;//记录是否被出局1表示出局
}dat;

int main(int argc, char *argv[])
{
dat *tab;
int n;
int left_n;
int i;
int index_3;
dat *cur_dat;

scanf("%d", &n);
printf("%d\n", n);
tab = (dat *)malloc(sizeof(dat) * n);
//初始化号码,0开始,一开始都没有出局
for (i=0; i<n; i++) {
tab[i].num = i;
tab[i].is_out = 0;
}

left_n = n; //当前没有出局人数
cur_dat = tab; //循环开始位置
index_3 = 0; //记录0,1,2用

while (left_n != 1) {//剩下一个人就表示成功了
if (index_3 ==2) {//如果是2表示有人要出局了
cur_dat->is_out = 1; //出局,打印出局人号码
printf("%d\n", cur_dat->num);
left_n--;//减少没有出局的人数
}

do {
//找到下一个没有出局的人
if (++cur_dat == &tab[n]) {
cur_dat = tab;
}
}while(cur_dat->is_out != 0);

//到2了就回到0,当然也可以用除法余数求
if (index_3 ==2){
index_3 =0;
}
else{
index_3++;
}
}

//找到最后一个没有出局的人
//其实上面那个cur_dat就已经是了。
//
for (i=0; i<n; i++) {
if (tab[i].is_out == 0) {
printf("%d", i);
break;
}
}
system("PAUSE");
free(tab);

return 0;
}

========================================
不好意思,先前审题不清,这下重写了。
满足:
1. 用指针实现
2. n是在运行时人为输入
3. 实机上编译/运行通过
========================================

这个其实就是“猴子选大王”的问题

原题:
有N只猴子围成一圈,每只各一个从1到N中的编号,打算从中选出一个大王;经过协商,决定出选大王的规则:从第一个开始循环报数,数到3的猴子出圈,最后剩下来的就是大王。要求:从键盘输入N,编程计算哪一个编号的猴子成为大王

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

typedef struct _person
{
int num;
struct _person *next;
} person;

person* init(int n)
{
person *h,*p,*tail;
int i;

h=(person*)malloc(sizeof(person));
h->num=1;
h->next=h;
tail=h;
for(i=1;i<n;i++)
{
p=(person*)malloc(sizeof(person));
p->num=i+1;
p->next=tail->next;
tail->next=p;
tail=p;

}
return h;
}

int deal(person *h)
{
person *p,*q;
int n,m = 3;

for(n=1,p=q=h;p->next!=p;q=p,p=p->next,n++)
if(n%m==0)
{
q->next=p->next;
printf("出列的人是:\n");
printf("%d\n ",p->num);
free(p);
p=q->next;
n=1;
}
n=p->num;
free(p);
return n;
}

int main()
{
person *h;
int n;

printf("?入n:\n");
scanf("%d",&n);
h=init(n);
printf("最后留下的人是: %d\n",deal(h));
getch();
return 0;
}

/*此题用链表处理的当然属于指针了*/
#include<stdio.h>
#include<stdlib.h>

typedef struct _person
{
int num;
struct _person *next;
} person;

person* init(int n)
{
person *h,*p,*tail;
int i;

h=(person*)malloc(sizeof(person));
h->num=1;
h->next=h;
tail=h;
for(i=1;i<n;i++)
{
p=(person*)malloc(sizeof(person));
p->num=i+1;
p->next=tail->next;
tail->next=p;
tail=p;

}
return h;
}

int deal(person *h)
{
person *p,*q;
int n;

for(n=1,p=q=h;p->next!=p;q=p,p=p->next,n++)
if(n%3==0)
{
q->next=p->next;
printf("the deleate number:\n");
printf("%d\n ",p->num);
free(p);
p=q->next;
n=1;
}
n=p->num;
free(p);
return n;
}

int main()
{
person *h;
int n;

printf("输入人的个数:");
scanf("%d",&n);
h=init(n);
printf("最后的人是: %d\n",deal(h));
return 0;
}

#include<stdio.h>
void main()
{ int i,k,m,n,num[50],*p;
printf("input number of person: n=");
scanf("%d",&n);
p=num;
for(i=0;i<n;i++)
*(p+i)=i+1;
i=0;
k=0;
m=0;
while(m<n-1)
{ if(*(p+i)!=0) k++;
if(k==3)
{ *(p+i)=0;
k=0;
m++;
}
i++;
if(i==n) i=0;
}
while(*p==0) p++;
printf("the last one is NO.%d\n",*p);
}

  • 閫熼槄C璇█缁忓吀鑰冮
    绛旓細C璇█缁忓吀棰樼洰 1銆佹湁 1銆2銆3銆4 鍥涗釜鏁板瓧锛岃兘缁勬垚澶氬皯涓簰涓嶇浉鍚屼笖鏃犻噸澶嶆暟瀛楃殑涓変綅鏁?閮芥槸澶氬皯?2銆佷竴涓暣鏁帮紝瀹冨姞涓100鍚庢槸涓涓畬鍏ㄥ钩鏂规暟锛屽啀鍔犱笂168鍙堟槸涓涓畬鍏ㄥ钩鏂规暟锛岃闂鏁版槸澶氬皯?3銆佺敤*鍙疯緭鍑哄瓧姣岰鐨勫浘妗堛4銆佽緭鍑9*9鍙h瘈銆5銆佸埄鐢ㄦ潯浠惰繍绠楃鐨勫祵濂楁潵瀹屾垚姝ら:瀛︿範鎴愮哗>=90鍒...
  • 涓浜C璇█鐨闂,寰堢揣鎬,闈炲父鎰熻阿鎮ㄨ兘鍥炵瓟!!!
    绛旓細A锛 C璇█鐨鐢ㄦ埛鏍囪瘑绗﹀彧鑳界敱瀛楁瘝鍜屾暟瀛楃粍鎴 B锛 C璇█鐨勭敤鎴锋爣璇嗙蹇呴』鐢卞瓧姣嶅拰鏁板瓧鍜屼笅鍒掔嚎缁勬垚锛屽叾涓涓涓瓧绗﹀彧鑳芥槸瀛楁瘝鎴栦笅鍒掔嚎 C锛 C璇█鐨勫叧閿瓧锛堜繚鐣欏瓧锛変笉鑳借缃负鐢ㄦ埛鏍囪瘑绗 D锛 C璇█鍏佽灏嗛瀹氫箟鏍囪瘑绗︿綔涓虹敤鎴锋爣璇嗙锛岀紪璇戠▼搴忎笉浼氱粰鍑哄嚭閿欎俊鎭紝浣嗕細浣块瀹氫箟鏍囪瘑绗﹀け鍘绘剰涔 4.鍦–...
  • c璇█缁忓吀100棰,瑕佽繃绋
    绛旓細鎮ㄥソ锛c璇█缁忓吀100棰:銆愮▼搴1銆棰樼洰:鏈1,2,3,4涓暟瀛,鑳界粍鎴愬灏戜釜浜掍笉鐩稿悓涓旀棤閲嶅鏁板瓧鐨勪笁浣嶆暟 閮芥槸澶氬皯 1.绋嬪簭鍒嗘瀽:鍙~鍦ㄧ櫨浣,鍗佷綅,涓綅鐨勬暟瀛楅兘鏄1,2,3,4.缁勬垚鎵鏈夌殑鎺掑垪鍚庡啀鍘 鎺変笉婊¤冻鏉′欢鐨勬帓鍒.2.绋嬪簭婧愪唬鐮:main(){ int i,j,k;printf("\n");for(i1;i<5;i++)/*浠...
  • 鎬ユ眰c璇█缂栫▼棰樼洰
    绛旓細rand()鍑芥暟鏄寜鎸囧畾鐨勯『搴忔潵浜х敓鏁存暟,鍥犳姣忔鎵ц涓婇潰鐨勮鍙ラ兘鎵撳嵃鐩稿悓鐨勪袱涓,鎵浠ヨC璇█鐨闅忔満骞朵笉鏄湡姝f剰涔変笂鐨勯殢鏈,鏈夋椂鍊欎篃鍙吉闅忔満鏁,浣跨敤 rand() 鐢熸垚闅忔満鏁颁箣鍓嶉渶瑕佺敤闅忔満鍙戠敓鍣ㄧ殑鍒濆鍖栧嚱鏁 srand(unsigned seed)(涔熶綅浜 stdlib.h 涓) 杩涜浼殢鏈烘暟搴忓垪鍒濆鍖,seed 鍙堝彨闅忔満绉嶅瓙,閫氫織璁插氨鏄,濡傛灉...
  • C璇█缂栫▼棰樼洰
    绛旓細涓嬮潰鏄竴浜C缂栫▼棰樼洰锛1. 缂栧啓绋嬪簭锛屼粠閿洏杈撳叆涓や釜鏁存暟锛岃緭鍑哄畠浠殑鍜屻佸樊銆佺Н銆佸晢銆佷綑鏁般2. 缂栧啓绋嬪簭锛屼粠閿洏杈撳叆涓夎褰㈢殑涓夋潯杈归暱锛屽垽鏂畠浠槸鍚﹀彲浠ユ瀯鎴愪笁瑙掑舰锛屽苟杈撳嚭涓夎褰㈢殑绫诲瀷锛堢瓑杈广佺瓑鑵般佷竴鑸級銆3. 缂栧啓绋嬪簭锛屼粠閿洏杈撳叆瀛楃涓诧紝缁熻鍏朵腑鐨勫ぇ鍐欏瓧姣嶃佸皬鍐欏瓧姣嶃佹暟瀛楀拰鍏朵粬瀛楃鐨勪釜鏁帮紝骞...
  • c璇█棰樼洰?
    绛旓細姝g‘锛寉鏄痜loat绫诲瀷锛寈[3]涔熸槸float绫诲瀷銆侭.y=x+1; 閿欒锛寉鏄痜loat绫诲瀷锛寈鏄痜loat*绫诲瀷(鎸囧悜float绫诲瀷鐨勬寚閽)銆侰.y=x[2]+1; 姝g‘锛寉鏄痜loat绫诲瀷锛寈[2]涔熸槸float绫诲瀷銆侱.x[0]=y; 姝g‘锛寈[0]鏄痜loat绫诲瀷锛寉涔熸槸float绫诲瀷銆侭鐨勬纭啓娉曟槸锛歽=*(x+1);...
  • C璇█棰樼洰 澶氶」閫夋嫨(鑷冲皯涓や釜姝g‘绛旀)
    绛旓細1. 浠ヤ笅閫夐」鏄C璇█鍏抽敭瀛楃殑鏄紙A銆丆銆丏锛夈侫.main B.FOR C.break D.void 2. 浠ヤ笅閫夐」鍙綔涓篊璇█鍚堟硶鏁存暟鐨勬槸(A銆丅銆丆)銆侫.12345L B.0xabff C.0678 D.x3f0 3. 浠f暟寮廰e/(bc) 鐨勬纭瓹璇█琛ㄨ揪寮忔槸( A銆丅銆丏)銆侫.a/b/c*e B.a*e/b/c C.a*e/b*c...
  • c璇█缂栫▼棰樼洰姹傝В
    绛旓細棰樼洰1锛氫娇鐢╥f澶氬垎鏀粨鏋勶細c include<stdio.h> int main(){ int score;printf("璇疯緭鍏ュ鐢熺殑鎴愮哗锛歕n");scanf("%d", &score);if(score>=90 && score<=99){ printf("瀛︾敓鐨勬垚缁╃瓑绾т负A\n");}else if(score>=80 && score<=89){ printf("瀛︾敓鐨勬垚缁╃瓑绾т负B\n");}else if(score>=...
  • C璇█缁冧範棰 鍚勪綅甯府蹇欏仛鍋 甯屾湜澶у甯府蹇?
    绛旓細4. C璇█鏄竴绉嶄綆绾ц瑷銆 A. 閿欒 B. 姝g‘ 婊″垎锛2 鍒咥 5. 瀛楃鍨嬫暟鎹湪璁$畻鏈轰腑鏄互ASCII鐮佸舰寮忚〃绀虹殑銆 A. 閿欒 B. 姝g‘ 婊″垎锛2 鍒咥 6. 琛ㄨ揪寮 0195 鏄竴涓叓杩涘埗鏁存暟銆 A. 閿欒 B. 姝g‘ 婊″垎锛2 鍒咮 7. strlen鏄眰瀛楃涓查暱搴︾殑鍑芥暟銆 A. 閿欒 B. 姝g‘ 婊″垎锛2 鍒咮 8....
  • 鍏充簬c璇█鐨涓変釜鐨勯鐩,璋㈣阿澶у,绛旀閮芥槸c
    绛旓細2锛欰閫夐」灏嗕簩缁存暟缁勮祴鍊肩粰浜嗕竴涓寚閽堛侭閫夐」灏嗘寚鍚戜竴缁存暟缁勭殑鎸囬拡璧嬪肩粰浜嗘寚閽堛侱閫夐」灏嗕簩缁存暟缁勮祴鍊肩粰浜嗕竴涓寚鍚戜竴缁存暟缁勭殑鎸囬拡銆備互涓婇兘涓嶆纭紝鎵浠ラC銆3锛氱洿鎺ユ嬁涓や釜鏁扮粍璧嬪兼槸涓嶅鐨勶紝鍙兘瀵规暟缁勪腑鐨勬煇涓鍏冪礌璧嬪笺傛晠C閿欒銆傚笇鏈涜兘甯埌浣 ...
  • 扩展阅读:c语言基础知识100题 ... c语言入门100题目 ... c语言测试题目及答案 ... c语言编程代码大全 ... c++常考编程题 ... c语言编程题搜题软件 ... c语言期末考试必背100题 ... c语言必背100代码 ... 大一c语言编程题库100题 ...

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