菜鸟免进,C语言高难度算法

作者&投稿:孛树 (若有异议请与网页底部的电邮联系)
4个菜鸟级别C语言选择题~

你好!!!
1.为什么选择D呢??因为数组名字就第一个元素的地址,但是数组名字是个是常量,是不可以改变的 !!而*aa++,就是改变数组。但你可能会问,选项A,怎么对啊??首先我要知道指针变量可以自加或自减。原因是 fun(char aa[10])
{ while(*aa) printf(“%c”,*aa++);},调用函数fun()实参是数组名,那么形参可以是数组名或是指针变量,要是指针变的话,相信你可以理解,要是数组名的哈,你可能会想aa++也是错的,但是调用函数的时候,形参要是数组明的话,系统会自动的把数组名转化指针变量,所以选项A,对的!!

2.首先],(*q)[4]=a;表示定义一个指向一维数组的指针变量q,此时q指向数组a的第一个元素。那么选项B:a[2][3]与p[2][3]等价;其中p[2][3]是错误的,指针p只是一维数组指针变量,不是二维,不可以用p[2][3]的形式

后面的前两位都讲了。
要是还不理解我们再联系!!!

for(i =1; i<5 ; i++);
所有for循环最后面的 分号 去掉
void main()
{
int i,j,k;
printf("
");
for(i=1;i<5;i++)
for(j=1;j<5;j++)
for (k=1;k<5;k++)
{ if (i!=k&&i!=j&&j!=k)
printf("%d,%d,%d
",i,j,k);
}
}

#include <iostream>
#include <fstream>
#include <iomanip>
#include <cmath>
#include <algorithm>

using namespace std;

ifstream fin("Dijistra.in");

#define NN 1000 // Dijistra求有向图(map[n][n])中点s到其于顶点
的最短路。
// 数组d[n]存储最终结果。 flag[n]是标志数组。

int n,m,s; // n为顶点数,m为边数,s为起点。
int map[NN][NN],flag[NN],d[NN]; // 一律以0为起始单元。

void dijistra(int s);
int getmin();
void in();
int main()
{
in();
dijistra(s);

getchar();
fin.close();
return 0;
}
void dijistra(int s)
{
int i,j,k;
memset(flag,0,sizeof(flag));
memset(d,0,sizeof(d));
for (i=0;i<n;i++)
if (map[s]!=0) d=map[s];
d[s]=0;
flag[s]=1;

for (;;){
k=getmin();
flag[k]=1;
if (k==-1) break;
for (i=0;i<n;i++)
if (map[k] && (d==0 || d>d[k]+map[k])) d=d[k]+map[k][i
];
}

//out
cout<<"s= "<<s<<endl;
for (i=0;i<n;i++)
cout<<"d [ "<<i<<" ]= "<<d<<endl;

return;
}
int getmin()
{
int i,rec=-1;
for (i=0;i<n;i++)
if (!flag)
if (d!=0)
if (rec==-1) rec=i;
else
if (d[rec]>d) rec=i;
return rec;

}
void in()
{
int i,x,y,dist;
fin>>n>>m;
memset(map,0,sizeof(map));
for (i=0;i<m;i++){
fin>>x>>y>>dist;
map[x][y]=dist;
}
fin>>s;
return;
}

Dijkstra algorithm

C-code:

void DIJKSTRA(){
int A[N][N], i, u, v, s, c, N, MAXD;
int PQ[N], dist[N], Adj[N];
for(v = 0; v < N; v++){
if(v = s)
dist[v] = 0;
else
dist[v] = MAXD;
PQ[v] = dist[v];
}
i = N-1;
while(i > 0){
for(j = 0; j < i; j++)
if(PQ[j] < PQ[i])
swap(PQ[j], PQ[i]);
u = PQ[i];
for(v = 0; v < N, A[u][v] != 0; j++){
c = dist[u] + A[u][v];
if(c < dist[v])
dist[v] = c;
}
i = i-1;
}
}

这也叫高难度?大一不就学dijitra了。


c语言老鸟进
同感,我也是,我认为在保证质量的情况下,我们可以把自己的学习进度加快,这样我们去上课就等于再次复习,何乐而不为呢,对于课堂作业还是要做的,毕竟这关于平常成绩。要成为老鸟,不是看时间长短,是看知识的积累,和解决问题的能力,如果自己有电脑多去些论坛,如编程中国,看看那些高手怎么解决问题的...

c语言的学习方法
(以上两本《c陷阱...》已绝版,不过网上可以下载到中英文版,《高质量...》本身就是网络书,很容易找到)其它推荐书:《c专家编程》《c和指针》说实话这两本书我并没有看过(或看完),但有口皆碑,都是经典之作,不过都已经绝版,仔细找找网上有下载的。2、有哪些好的C语言练习(越难的越好...

如何学习C语言?
学习方法是:1、课前预习,课后复习,认真做课堂、课后的作业,理解理论知识。2、记住语法规则。3、加强逻辑思维。4、多动手,通过练习上机了解它的运行过程。5、实践—>理论—>再实践,刚开始学习C语言时,按示例练习,并推动理论的学习,然后再自己多思考,多上机实践。

各位高手,我是一个C语言菜鸟,我是自己自学C语言的,可是效果不好,请问...
会运用那么基本的语句,可以上去北大的acm网站上做做题,提高自己的能力。当然一开始,要做些容易的,通过高的题做。北大acm的网站是http:\/\/acm.pku.edu.cn\/JudgeOnline\/ 学习编程的同时,要学习调试程序,好好运用编译器的功能,这样就会慢慢地学到C语言的规律了。

哪种编程语言最好学?
C是学习高级语言的基础;C++主要用于编写大型软件核心代码和汇编一样,比较难学,不过学好了后,很有前途;C#主要用于编写一些系统软件,比如游戏引擎核心代码,编写比较简单,界面比较友好;ASP.NET主要是用C#语言编写开发网站(B\/S架构)。 J2EE是用很广泛,主要偏向于企业应用软件和一些桌面系统(C\/S架构),计算机平台;第二...

用C语言编写文件为什么文件里是乱码?
3 字符读出来了之后,也要加上 str[26] = '\\0' 语句 第二个程序:1. 缓冲区不够, char str[26], 改为 char str[27]2. 读取文件函数写错鸟,fwrite 改为 fread; 不要搞 fputs 了,文件是以"r"只读模式打开的 3 假使你把字符读出来了,也要加上 str[26] = '\\0' 语句 include<...

学习C语言究竟要怎么样才算精通?
我当初学习C语言时教材就是教授的教材,写的比较通俗易懂,最起码把我领进了门。当入门了以后,想进一步提高自己的水平,就不要死抠着教授的教材了,可以看看国外大牛们的书了。2. 入门了,当你坐在电脑前,你不一定会立即就能写出代码。不过没关系,你可以先从敲一些很简单的代码开始练起。给自己...

菜鸟学编程,c语言的。。。
大多学不好的就是因为一开始遇到困难就放弃,曾经和好多同学谈他的问题,回答是听不懂、不想听、放弃这样三个过程,我反问,这节课你听过课吗?回答又是没有,根本就没听过课,怎么说自己听不懂呢?相应的根本就没学习,又谈何学得好?学习C语言始终要记住“曙光在前头”和“千金难买回头看”,...

c语言 鸡兔同笼
c=(4*a-b)\/2; \/\/ 鸡的数目 d=a-c; \/\/ 兔的数目 if(c*2+d*4==b)printf("鸡有%ld只\\n兔有%ld只\\n",c,d); \/\/ c和d反了 else printf("这个真难,计算机也没法算!\\n");} else printf("输入鸡兔脚的数量范围不正确,正确的范围是%d--%d!\\n",a*2,a*4);} else print...

c语言问题,高手请进啊。。。
include "stdio.h"int main(){ int i,j,k,m,a[3];for(i=101;i<666;i++){ m=i;j=0;\/\/ 将十进制的自然数 i 各位上的数字分离出来 while(m>0){ a[j++]=m%10;m=m\/10;} if(a[0]==0){ continue;} \/ a[0]+a[1]*7+a[2]*49 不是十进制数 i 的七进制表示。比如...

顺河回族区15593642437: 菜鸟免进,C语言高难度算法 -
杜宽观通: #include <iostream> #include <fstream> #include <iomanip> #include <cmath> #include <algorithm> using namespace std; ifstream fin("Dijistra.in"); #define NN 1000 // Dijistra求有向图(map[n][n])中点s到其于顶点 的最短路.// 数组d[n]存储...

顺河回族区15593642437: c语言高难度算法,菜鸟勿进! ^ - ^ -
杜宽观通: //我做出来了.//输入:A1,A3,A2,A8,A7,A6,A5,A4//输出:A1,A2,A3,A4,A5,A6,A7,A8//只是对输入的字串长度限制在100以内.#include "stdio.h"int main( ) { char str1[100];//输入字符串printf("请输入字符串:");scanf("%s",str1);//对...

顺河回族区15593642437: c语言菜鸟级作业题!!在线等 十万火急~~狂加分~
杜宽观通: 1,编写一个函数 my_strlin(char*s),用以计算并返回字符串S中小写英文字母的个数 #include void main() { int sum; char *s; int my_strlin(char *); printf("please enter string:"); scanf("%s",s); sum = my_strlin(s); printf("the low letter of string is :...

顺河回族区15593642437: C语言算法 初级入门菜鸟题 求教
杜宽观通: void main() { SqList L; int i; InitList_Sq(L); for(i=0;i<7;i++) { scanf("%d",L.elem+i); L.length++; } for(i=0;i<7;i++) printf("%d\t",L.elem[i]); printf("\n"); } 这样是可以运行的,文件要以.cpp为后缀名

顺河回族区15593642437: 菜鸟求解c语言程序,高手进来解决下
杜宽观通: #include <stdio.h> main() { int i,a[4],av=0,l=0,max,min; printf("请输入机架=%d,连杆=%d,连架杆1=%d,连架杆2=%d",a[0],a[1],a[2],a[3]); for(i=0;i<4;i++) { scanf("%d",&a[i]); max=a[0];min=a[0]; } for(i=0;i<4;i++) { if((max+min)<=l) { if(max<a[i...

顺河回族区15593642437: C语言 菜鸟题 -
杜宽观通: 程序的功能就是输入7个数字,然后程序会将你输入的打印出来 代码说明如下:main() { int i,*p,a[7]; p=a; //p执行数组的头,可以通过p对数组进行操作 for(i=0;i<7;i++) //for循环,输入7个数字到数组a中 scanf("%d",p++); //输入,p执行数组的具体成员 printf("\n"); p=a; for(i=0;i<7;i++,p++) //变量数组,输出数组内容 printf("%d",*p);}

顺河回族区15593642437: C语言菜鸟求高手解答... -
杜宽观通: 1 (x>=1 && x<=10) || (x>=15 && x<=20)2 开始m = 5,接下来m++>5,先判断,后加,即m先于5判断,再++,所以m++>5为false,结束后m=6,执行printf("%d\n",m--);同样,先输出,后--,即输出6,结束后m=5.希望有所帮助

顺河回族区15593642437: C语言菜鸟问题 -
杜宽观通: 你调用的这句sort( &aa[3], 5) ;明显是只对4,5,6,7,8这几个元素进行排序嘛 所以结果应该是1,2,3,8,7,6,5,4,9,10, 改成sort( &aa[0], 10)就行了

顺河回族区15593642437: C语言菜鸟求教
杜宽观通: scanf("&d",&radius);这句应该改为scanf("%d",&radius); printf(*\n\nArea=&d\n",area);这句应该改为printf(*\n\nArea=%d\n",area); 建议你再去看看输入输出 函数的格式

顺河回族区15593642437: c语言的菜鸟问题
杜宽观通: 修改后的代码如下: #include<stdio.h> void main() { int s[96],i,n,m,max=0,min=100,sum=0; double avr; for(i=0;i<96;i++) s[i]=0; printf("Input the number"); scanf("%d",&n); printf("Input the score"); for (i=0;i<n;i++) /for 循环如果循环的有多句语...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网