C语言的问题!!进进

作者&投稿:薄虾 (若有异议请与网页底部的电邮联系)
C语言报错的问题?~

你的程序错误,是在cout << “Enter the temperature in Celsius:”;cout << “Fahrenheit value is:”;中用了中文状态下的双引号。
#include
#include
#include
using namespace std;
int main(int nNumberofArgs, char* pszArgs[])
{
// enter the temperature in Celsius
int celsius;
cout << "Enter the temperature in Celsius:";
cin >> celsius;
// calculate conversion factor for Celsius
// to Fahrenheit
int factor;
factor = 212 - 32;
// use conversion factor to convert Celsius
// into Fahrenheit values
int fahrenheit;
fahrenheit = factor * celsius/100 + 32;
// output the results (followed by a NewLine)
cout << "Fahrenheit value is:";
cout << fahrenheit << endl;
// wait until user is ready before terminating program
// to allow the user to see the program results
system("PAUSE");
return 0;
}
以上程序正确,可以运行。如果还不行,那就是编译器的问题。建议:用vc2008,c-free或vc2010.微软已停止对vc6.0进行更新了。(开始不习惯很正常,成为高手后会喜欢例如vc2010的)。

d和ch[2]共用2个字节的内存知道吧。另一个重要的知识点是:我们常用的计算机系统对于多字节数据类型,采用了所谓的little endian存储方式,即数据的低位字节,存放在内存的低位地址。因此成员d的两个字节中,21存放在了低位地址,43放在了高位地址。而ch[2]这个数组,它的成员也是按顺序从低位地址到高位地址排列,所以ch[0]对应了21,ch[1]对应了43

/* ======================================== */
/* 程式实例: 3_6.c */
/* 链结串列的节点删除和记忆体释回 */
/* ======================================== */
#include <stdlib.h>

struct llist /* 串列结构宣告 */
{
int num; /* 邮寄编号 */
struct llist *next; /* 指向下一标签 */
};
typedef struct llist node; /* 定义新型态 */
typedef node *llink; /* 定义新型态指标 */

/* ---------------------------------------- */
/* 链结串列的列印 */
/* ---------------------------------------- */
void printllist(llink ptr)
{
while ( ptr != NULL ) /* 串列走访回路 */
{
printf("[%d]",ptr->num); /* 列印节点资料 */
ptr = ptr->next; /* 指向下一节点 */
}
printf("\n"); /* 换行 */
}

/* ---------------------------------------- */
/* 链结串列的建立 */
/* ---------------------------------------- */
llink createllist(int *array,int len)
{
llink head; /* 串列的开始指标 */
llink ptr,ptr1;
int i;

/* 建立第一个节点 */
head = ( llink ) malloc(sizeof(node)); /* 配置记忆体 */
if ( !head ) /* 检查指标 */
return NULL;
head->num = array[0]; /* 建立节点内容 */
head->next = NULL; /* 设定指标初值 */
ptr = head; /* 将ptr指向串列开始 */
for ( i = 1; i < len; i++ ) /* 建立其它节点回路 */
{
ptr1 = ( llink ) malloc(sizeof(node));
if ( !ptr1 )
return NULL;
ptr1->num = array[i]; /* 建立节点内容 */
ptr1->next = NULL; /* 设定指标初值 */
ptr->next = ptr1; /* 连结节点 */
ptr = ptr->next; /* 指向下一节点 */
}
return head;
}

/* ---------------------------------------- */
/* 链结串列的节点走访 */
/* ---------------------------------------- */
llink findnode(llink head,int num)
{
llink ptr;

ptr = head; /* 指向串列起始 */
while ( ptr != NULL ) /* 走访串列 */
{
if ( ptr->num == num ) /* 找寻编号 */
return ptr;
ptr = ptr->next; /* 指向下一节点 */
}
return ptr;
}

/* ---------------------------------------- */
/* 链结串列的节点删除 */
/* ---------------------------------------- */
llink deletenode(llink head,llink ptr)
{
llink previous; /* 指向前一节点 */

if ( ptr == head ) /* 是否是串列开始 */
/* 第一种情况: 删除第一个节点 */
return head->next; /* 传回第二节点指标 */
else
{
previous = head;
while ( previous->next != ptr ) /* 找节点ptr的前节点 */
previous = previous->next;

if ( ptr->next == NULL ) /* 是否是串列结束 */
/* 第二种情况: 删除最后一个节点 */
previous->next = NULL; /* 最后一个节点 */
else
/* 第三种情况: 删除中间节点 */
previous->next = ptr->next; /* 中间节点 */
}
free(ptr); /* 释回节点记忆体 */
return head;
}

/* ---------------------------------------- */
/* 链结串列的记忆体释回 */
/* ---------------------------------------- */
void freellist(llink head)
{
llink ptr;

while ( head != NULL ) /* 走访串列回路 */
{
ptr = head;
head = head->next; /* 指向下一节点 */
free(ptr); /* 释回节点记忆体 */
}
}

/* ---------------------------------------- */
/* 主程式: 找到邮寄编号后, 将之删除. */
/* ---------------------------------------- */
void main()
{
int llist1[6] = { 1, 2, 3, 4, 5, 6 }; /* 阵列内容 */
llink head; /* 指向串列开始 */
llink ptr;
int num; /* 邮寄编号变数 */

head = createllist(llist1,6); /* 建立串列 */
if ( !head )
{
printf("记忆体配置失败! \n");
exit(1);
}
printf("原来的链表: ");
printllist(head); /* 列印原来串列 */
while ( 1 )
{
printf("请输入要删除的邮寄编号 ==> ");
scanf("%d",&num); /* 读取邮寄编号 */
if ( num != -1 )
{
ptr = findnode(head,num); /* 找寻邮寄编号 */
if ( !ptr ) /* 是否找到 */
printf("没有找到\n");
else
{
head = deletenode(head,ptr); /* 删除此节点 */
printf("删除后的链表: ");
printllist(head); /* 列印删除后串列 */
}
}
else
exit(1); /* 结束离开 */
}
freellist(head); /* 释回串列记忆体 */
}

/* ======================================== */
/* 程式实例: 3_9.c */
/* 开头节点的链结串列 */
/* ======================================== */
#include <stdlib.h>

struct llist /* 串列结构宣告 */
{
int num;
struct llist *next; /* 指向下一标签 */
};
typedef struct llist node; /* 定义新型态 */
typedef node *llink; /* 定义新型态指标 */

/* ---------------------------------------- */
/* 链结串列的列印 */
/* ---------------------------------------- */
void printllist(llink head)
{
llink ptr;

ptr = head->next; /* 指向真正的起始 */
while ( ptr != NULL ) /* 串列走访回路 */
{
printf("[%d]",ptr->num); /* 列印节点资料 */
ptr = ptr->next; /* 指向下一节点 */
}
printf("\n"); /* 换行 */
}

/* ---------------------------------------- */
/* 链结串列的建立 */
/* ---------------------------------------- */
llink createllist(int *array,int len)
{
llink head; /* 串列的开始指标 */
llink ptr,ptr1;
int i;

/* 建立开头节点 */
head = ( llink ) malloc(sizeof(node)); /* 配置记忆体 */
if ( !head ) /* 检查指标 */
return NULL;
ptr = head; /* 将ptr指向串列开始 */
for ( i = 0; i < len; i++ ) /* 建立其它节点回路 */
{
ptr1 = ( llink ) malloc(sizeof(node));
if ( !ptr1 )
return NULL;
ptr1->num = array[i]; /* 建立节点内容 */
ptr1->next = NULL; /* 设定指标初值 */
ptr->next = ptr1; /* 连结节点 */
ptr = ptr->next; /* 指向下一节点 */
}
return head;
}

/* ---------------------------------------- */
/* 链结串列的节点插入 */
/* ---------------------------------------- */
llink insertnode(llink head,llink ptr,int value)
{
llink new; /* 新节点指标变数 */

new = ( llink ) malloc(sizeof(node)); /* 建立新节点 */
if ( !new )
return NULL;
new->num = value; /* 建立节点内容 */
new->next = NULL; /* 设定指标初值 */
/* 如果ptr等於开头节点则是插入第一个节点 */
new->next = ptr->next; /* 新节点指向下一节点 */
ptr->next = new; /* 节点ptr指向新节点 */
return head;
}

/* ---------------------------------------- */
/* 链结串列的节点删除 */
/* ---------------------------------------- */
llink deletenode(llink head,llink ptr)
{
llink previous;

previous = head;
while ( previous->next != ptr ) /* 找节点ptr前一节点 */
previous = previous->next;
previous->next = ptr->next; /* 删除中间节点 */
free(ptr); /* 释回节点记忆体 */
return head;
}

/* ---------------------------------------- */
/* 主程式: 开头节点插入删除操作. */
/* ---------------------------------------- */
void main()
{
int llist1[6] = { 1, 2, 3, 4, 5, 6 }; /* 阵列内容 */
llink head; /* 指向串列开始 */

head = createllist(llist1,6); /* 建立串列 */
if ( !head )
{
printf("记忆体配置失败! \n");
exit(1);
}
printf("原来的链表: ");
printllist(head); /* 列印原来串列 */
head = insertnode(head,head,0); /* 插入新节点 */
if ( !head )
{
printf("记忆体配置失败! \n");
exit(1);
}
/* 删除串列内节点 */
head = deletenode(head,head->next->next->next);
printf("最后的链表: ");
printllist(head); /* 列印结果串列 */
}

#include <stdio.h>
#define N 8
typedef struct
{ char num[10];
double s;
} STREC;
double fun (STREC *a, STREC *b ,int *n)
{
double sum= 0., ave = 0.;
int i, j, k = 0;
for(i = 0; i < N; i++)
sum+=a[i].s;
ave = sum / N;
for(i = 0; i < N; i++)
{
if(a[i].s < ave)
{
j = 0;
while (b[k].num[j] = a[i].num[j++]);
b[k++].s = a[i].s;
}
}
*n = k;
return ave;
}
main ()
{
STREC s[N]={{"GA05",85},{"GA03",76},{"GA02",69},{"GA04",85},
{"GA01",91},{"GA07",72},{"GA08",64},{"GA06",87}};
STREC h[N],t;FILE *out;
int i,j,n; double ave;
ave=fun(s,h,&n);
printf("The %d student data which is lower than %7.3f:\n",n,ave);
for(i=0;i<n;i++)
printf("%s %4.1f\n",h[i].num, h[i].s);
printf("\n");
}

#include <stdio.h>
#define N 8
typedef struct
{ char num[10];
double s;
} STREC;
double fun (STREC *a, STREC *b ,int *n)
{
double sum= 0., ave = 0.;
int i, j, k = 0;
for(i = 0; i < N; i++)
sum+=a[i].s;
ave = sum / N;
for(i = 0; i < N; i++)
{
if(a[i].s < ave)
{
j = 0;
while (b[k].num[j] = a[i].num[j++]);
b[k++].s = a[i].s;
}
}
*n = k;
return ave;
}
main ()
{
STREC s[N]={{"GA05",85},{"GA03",76},{"GA02",69},{"GA04",85},
{"GA01",91},{"GA07",72},{"GA08",64},{"GA06",87}};
STREC h[N],t;FILE *out;
int i,j,n; double ave;
ave=fun(s,h,&n);
printf("The %d student data which is lower than %7.3f:\n",n,ave);
for(i=0;i<n;i++)
printf("%s %4.1f\n",h[i].num, h[i].s);
printf("\n");
}
回答者: 梦想窗外 - 江湖大侠 九级 6-1 08:27
整个程序通过调试,绝对无错
#include <stdio.h>
#define N 8
typedef struct
{ char num[10];
double s;
} STREC;
double fun (STREC *a, STREC *b ,int *n)
{
double sum= 0., ave = 0.;
int i, j, k = 0;
for(i = 0; i < N; i++)
sum+=a[i].s;
ave = sum / N;
for(i = 0; i < N; i++)
{
if(a[i].s < ave)
{
j = 0;
while (b[k].num[j] = a[i].num[j++]);
b[k++].s = a[i].s;
}
}
*n = k;
return ave;
}
main ()
{
STREC s[N]={{"GA05",85},{"GA03",76},{"GA02",69},{"GA04",85},
{"GA01",91},{"GA07",72},{"GA08",64},{"GA06",87}};
STREC h[N],t;FILE *out;
int i,j,n; double ave;
ave=fun(s,h,&n);
printf("The %d student data which is lower than %7.3f:\n",n,ave);
for(i=0;i<n;i++)
printf("%s %4.1f\n",h[i].num, h[i].s);
printf("\n");

整个程序通过调试,绝对无错
#include <stdio.h>
#define N 8
typedef struct
{ char num[10];
double s;
} STREC;
double fun (STREC *a, STREC *b ,int *n)
{
double sum= 0., ave = 0.;
int i, j, k = 0;
for(i = 0; i < N; i++)
sum+=a[i].s;
ave = sum / N;
for(i = 0; i < N; i++)
{
if(a[i].s < ave)
{
j = 0;
while (b[k].num[j] = a[i].num[j++]);
b[k++].s = a[i].s;
}
}
*n = k;
return ave;
}
main ()
{
STREC s[N]={{"GA05",85},{"GA03",76},{"GA02",69},{"GA04",85},
{"GA01",91},{"GA07",72},{"GA08",64},{"GA06",87}};
STREC h[N],t;FILE *out;
int i,j,n; double ave;
ave=fun(s,h,&n);
printf("The %d student data which is lower than %7.3f:\n",n,ave);
for(i=0;i<n;i++)
printf("%s %4.1f\n",h[i].num, h[i].s);
printf("\n");
}

vs2005通过
#include <stdio.h>
#define N 8
typedef struct
{ char num[10];
double s;
} STREC;

double fun (STREC *a, STREC *b ,int *n)
{
double sum= 0.0, ave = 0.0;
int i, j, k = 0;
for(i = 0; i < N; i++)
sum+=a[i].s;
ave = sum / N;
for(i = 0; i < N; i++)
{
if(a[i].s < ave)
{
j = 0;
while (b[k].num[j] = a[i].num[j++]);
b[k].s = a[i].s;
k++;
}
}
*n = k;
return ave;
}
void main ()
{
STREC s[N]={{"GA05",85},{"GA03",76},{"GA02",69},{"GA04",85},
{"GA01",91},{"GA07",72},{"GA08",64},{"GA06",87}};
STREC h[N],t;FILE *out;
int i,j,n; double ave;
ave=fun(s,h,&n);
printf("The %d student data which is lower than %7.3f:\n",n,ave);
for(i=0;i<n;i++)
printf("%s %4.1f\n",h[i].num,h[i].s); //这里不对,我改了,可能是你写错了
printf("\n");
}


幼儿语言常见的问题及措施
幼儿语言常见的问题及措施如下:1、幼儿语言教育存在一定的超前性。在幼儿语言教育中,部分幼儿教师未能有效地分析幼儿的语言学习基础,在开展语言教育的过程中,存在脱离实际,盲目跟进的做法。部分幼儿教师不考虑幼儿的接受程度,不考虑幼儿自身的特点,将本来不属于幼儿学习阶段的语言内容放到课堂上来讲,造成...

C语言的问题!!进进
我的 C语言的问题!!进进 学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组S中,请编写函数FUN,它的功能是:把低于平均分的学生数据放在B所指的数组中,低于平均分的学生人数通过形参N传... 学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组S中,请编写函数FUN,它的功能...

C语言的问题!进进
我的 C语言的问题!进进 改正程序中的错误让他能得出正确结果注意不要MAIN函数不能增行减行,也不能修改程序结构#include<stdio.h>#defineSIZE20fun(double*s,double*w){intk,i;doublesum;for(k-2,i=0;i<SIZE... 改正程序中的错误 让他能得出正确结果 注意 不要MAIN函数 不能增行减行,也不能修改程序...

c语言问题 进进
而ch[2]这个数组,它的成员也是按顺序从低位地址到高位地址排列,所以ch[0]对应了21,ch[1]对应了43

C语言的问题,会的进
e2 = e1 + 1 i = e2 这三个子表达式都没有顺序点( sequence point ),而 ++ i 和 i = e3 都是有副作用( side effect )的表达式。由于没有顺序点,语言不保证这两个副作用的顺序。为什么要这么做呢?因为对于编译器提供商来说,未确定的顺序对优化有相当重要的作用。比如,一个常见的优化...

语言教学中容易存在的问题
一、教学中教师语言运用存在的问题 (一)教学用语缺乏规范性与教师乱用教学语言 在当前的中学语文课堂教学中,存在部分教师备课不完备,对教材中的专业知识掌握较弱的情况,导致上课过程中运用的授课语言缺乏规范性,不准确,难以进行仔细推敲的情况。还有一些语文教师讲课时语速不当,过快过慢都影响同学...

关于语言进化的问题
一、人类语言的分化,是因为所属集团不同。不同行业的人说话都有细微的差别,更何况生活在不同地域的人。二、鸡的打鸣相同,不足为奇,这是由它的发音器官决定的。三、主要是由于人类有语言能力,动物没有语言能力。因为没有语言能力,所以能发出什么样的声音就主要是由发音器官(也就是生理特征)来...

C语言的小小问题,大家都进来看看
1.至于宏定义为什么喜欢定义成 0xf 什么的,还有经常看到定义成0x00000001 这种形式的。首先计算机运算全是通过2进制进行的,所以把16进制(0x 代表这个数是16进制的)转换成2进制,那么f 就是 1111 0xfff1 2进制表现就是 1111 1111 1111 0001 c语言基础教程书上都有这么一课,就是位运算,"|","...

SQL语言的问题
SQL是英文Structured Query Language的缩写,意思为结构化查询语言。SQL语言的主要功能就是同各种数据库建立联系,进行沟通。按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。目前,绝大多数流行的关系型数据...

一个汇编语言的问题,大神请进
IF (Interrupt enable)——位9,中断许可标志。控制处理器对可屏蔽硬件中断请求的响应。置1 则开启可屏蔽硬件中断响应,置0 则关闭可屏蔽硬件中断响应。执行int8后,IF标志会由允许中断(EI)变为禁止中断(DI),即由“1”变为“0”。因此,X2XX就变成了X0XX。CPL、IOPL 和控制寄存器CR4 中的...

固原市18188031024: C语言的问题!!进进 -
丛阀派速: #include <stdio.h>#define N 8typedef struct{ char num[10];double s;} STREC;double fun (STREC *a, STREC *b ,int *n){ double sum= 0., ave = 0.;int i, j, k = 0; for(i = 0; i < N; i++) sum+=a[i].s; ave = sum / N; for(i = 0; i < N; i++) { if(a[i].s < ave) { j = 0; ...

固原市18188031024: C语言的大问题!!高手进!!!!!!
丛阀派速: swap2属于值传递 在swap2函数里 你的c0 和c1是那个函数模块里新开辟的空间 就算是你的数组里的值传递过去了 但是因为它们都是新的地址 而原来数组里的地址里的那俩值却没有被改变 你改变的只是新地址下的 复制品

固原市18188031024: c语言的问题,请高手进
丛阀派速: 代码如下 #include <stdio.h>void main(){ int a,b;//a为玩家1,b为玩家2 printf("0为石头,1为剪刀,2为布\n"); printf("请玩家1出拳:\n"); scanf("%d",&a); printf("请玩家2出拳:\n"); scanf("%d",&b);// if('0' < = a < = '2' && '0' < = b < =...

固原市18188031024: (高手请进)C语言的问题
丛阀派速: 1.输出3,2 (++x,y++)操作都会执行,但最后只会输出最后一个既y的值.例如:int x=3,y=3,z=1;printf("%d %d\n",(++x, y++,z++,y++,x++,++y),z+2);就会输出 6,4 2.输出14 ,110k=016,前面的0表示的是八进制,转换成十进制输出即等于8+6=14;如果是k=0x16那就是十六进制,转换成十进制就是16+6=22. 例如:int m,n; m=016; n=0x16; printf("m=%d,n=%d\n",m,n); 就会输出14,22. 3.应该和2题是一样的吧??? 你可以编译试一下哈...

固原市18188031024: C语言的一些问题
丛阀派速: 第一题:数组a的长度为变量n,这种定义数组的方式是错误的.定义数组时,数组长度可以用符号常量表示.例如#define N 40float s[N] 第二题:应改成 scanf("%s",str); 用%s格式输出一个字符串时,在输出表列中只需给出字符串的首地址,一 维数组直接用数组名,而二维数组可以看成是由多个一维数组构成的. 第三题:%d表示按整形的实际长度输出;%f表示按小数格式输出,整数部分按实际位数输出,6位小数. 所以要改成:a已定义为整型,b定义为实型 a=3;b=4.5; printf("%d%f\n",a,b);

固原市18188031024: C语言的简单问题,紧急
丛阀派速: 没问题描述不清楚,是警告还是错误?是语法错误还是逻辑错误? 可能的警告:fun函数里的i赋值了但没使用,把int i=0;删了就行. 可能的语法错误:严格的编译器会提示main函数必须返回一个值,最后加一句return 0;就行.

固原市18188031024: C语言问题,高手请进
丛阀派速: #include<stdio.h>void main(){ int a,b,c; int *p1,*p2,*p3; scanf("%d,%d,%d",&a,&b,&c); p1=a>b && a>c? &a:b>c? &b:&c; p2=a<b && a<c? &a:b<c? &b:&c; p3=a>b && b>c? &b:a<b && a>c? &a:a<c && b>c?&c:&b; printf("max=%d min=%d mid=%d\n",*p1,*p2,*p3); } //呵呵,还有什么疑虑啊这几种情况都是对啊!那里错了呀!

固原市18188031024: C语言小问题 高进手 -
丛阀派速: 你是用一个结构体数组存储,你输入时的空格系统认为是数组这个元素输入完毕的结束符,后面的输入将保存到数组下个元素,也就是说空格本身并没有被保存,当然不会输出

固原市18188031024: C语言问题 高手进来
丛阀派速: #define MAX_STR_LEN 128 #include <stdio.h> #include <stdlib.h> int str_find(const char* source, const char* aim) { int source_len = strlen(source); int aim_len = strlen(aim); if(aim_len > source_len) return -1; int i, j; for(i=0; i<source_len-aim_len+1...

固原市18188031024: c语言问题 -
丛阀派速: 相信我一定选 B A 错 原因:任何程序语言都有自己的语法!编译是按照语法来进行翻译的!最后成为具有运行能力的exe,类似英语和汉语! B 对 原因:这是程序的规定! C 错 原因:这也是规定,你可以在理解的过程中记忆!因为规定的我们只需知道她这样规定的好处!你说对吧! D 错 原因:在c语言中,函数是有内部函数的! 希望对你有帮助!

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