C语言大问题...高手请进...

作者&投稿:镡万 (若有异议请与网页底部的电邮联系)
C语言问题(高手请进)~

这个我已经编译过了,不知道你满不满意啊
#include "Stdio.h"
#define N 5
int main(void)
{
float grade[N],*p,max,min,sum=0,avg;//定义了一个记录分数的数组,一个指针,一个最大值,一个最小值,和存总分,平均分的变量
p=grade;
scanf("%f",p);
max=min=*p;
sum=sum+*p;
p++;
for(;p<grade+N;p++)
{ scanf("%f",p);
sum=sum+*p;
if(*p>max)max=*p;
if(*p<min)min=*p;
}
avg=(sum-max-min)/(N-2);
printf("the grade is:%f
",avg);
getch();
}

main()
{
int n[5]={3,3,3},i,k=2;
for(i=0;i<k;i++)
n[i]=n[i]+1;
printf("%d
",n[k]);
}
程序在循环时只有n[0],n[1]各加1
输出的是n[2],自然是3了
若将for(i=0;i<k;i++)改为for(i=0;i<=k;i++)
则输出为4.

我运行过你的程序了
在第一次运行的时候是正常的
如果再运行就不正常了
为什么呢
因为最后一句The screen has been cleared并没有被清除
而是被保留在屏幕上
所以你再次运行看到的是先有这句 其实程序还是运行for循环的
其实不是的
你在int i前加了clrscr就是把之前的The screen has been cleared清除掉
所以你看不到了

VC下的conio.h不包含这个函数
你可以用system"cls"代替

你可以把clrscr写在getch()后面
出错我是怀疑
因为在屏幕缓冲区没数据
所以清除无法运行吧

我用了好几个编译器编译这个程序(vc,borland,gnu),只有borland可以通过,但是没有出现你说的那种情况,你用的什么编译器?我也很想研究下这个问题。我怀疑是这个c程序有隐藏的问题,在c编译器下是可以通过的,但是换成了要求跟严格的c++编译器就通过不了了。而且我对cprintf,和cirscr函数不是很熟悉,还要进一步看手册才知道是怎么回事。


搞懂这8个C语言问题,你也能进大厂
高懂这8个c语言问题,你也能进大厂 1、用预处理指令#define声明一个常数,用以表明1年中有多少秒(忽略闰年问题)。 #define SEC_YEAR (365*24*60*60)UL考察点:1.#define语法的基本知识(例如:不能以分号结束,括号的使用,等等)。2.懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多...

C语言问题.高分悬赏!
因为你的m和n都没有初始化,如果第一个数是最大的话,那m和n就没有被复制,就是一个随机值,导致数组越界 include<stdio.h>#define N 10int findmax(int score[]);int findmin(int score[]);int main(){ int score[N] = {0}; int i,max = 0,min = 0,temp = 0; for(i=0;i...

一个高难度的c语言问题,帮帮我
说明:...为缩进符 include "math.h"include "stdio.h"include "conio.h"define N 7 define X 5.6 \/ function factorial n int n!return f...float \/ float fac(int n){ ...float f;...if(n<0){ ...printf("error");...}else if(0 == n || 1 == n){ ...f =...

c语言问题,高手请进啊。。。
这从直观上就知道不对。因为七进制比十进制的进制要小(一个是七,一个是十),因此两个数字的数码一样,进制大的数字肯定要大。如十进制数字数码为 281 ,和七进制数字数码为 281 ,十进制的 281 比七进制的 281 要大。那么十进制数字 281 比七进制的数字 155 更加要大。因此,十进制数字 28...

c语言问题,高分急求!!
这个过程很简单拉.解释如下:(看注释)\/\/这个函数是把通讯录信息保存到文件中去 void WritetoText(Person per[],int n){ int i=0;FILE *fp;\/\/定义文件指针 char filename[20]; \/\/定义文件名 printf("\\t保存到文件\\n");\/\/输入文件名 printf("\\t请输入所保存的文件名:");scanf("\\t%s",...

C语言问题 高手进
第一题:==的优先级比=高,所以先算getchar()=='A'再将判断的结果赋给ch,所以ch应为1 第二题 include <stdio.h> main(){ int x=8;for(;x>0;x--){ if(x%3) \/\/不能被3整除时 { printf("%d",x--);\/\/先打印出x再将x减一 continue; \/\/只是结束本次循环 } \/\/能被3整除...

求助C语言问题(高分悬赏)
void main(){ char str[100];int i;gets(str);for(i=0;str[i]!='\\0';i++){ if(i!=0 && (str[i]<65 || str[i]>123 || (str[i]>91 && str[i]<97)))if(str[i-1]>=97 && str[i-1]<=123)str[i-1]-=32;} if(str[i-1]>97 && str[i-1]<123)str[i-1]...

C语言问题!!高人们来帮帮忙!!!
对二十个数排序,排序算法是基础,随便你选哪个,在输出时,记录输出的数,如果下一个同前一个相同不输出!伪码:a[20];order(int a[20]);\/\/排序 out(int a[20]){\/\/输出 int t=a[0];int i;\/\/累加器 printf("%d",a[0]);for( i=1;i<20;i++){ if(a[i]!=t){ printf("%d"...

几个汇编语言问题.高手帮忙解答下..
BYTE PTR [SI],'A'2.MOV AL,BX;有错,类型不匹配,AL为8位,BX为16位 3.MOV BL,SI+2;有错,应该改为MOV BL,[SI+2]4.INC [BX];正确 5.MOV 256,AL;有错,立即数256不能作为目的操作数 6.MOV AX,BYTE PTR ALFA;有错,类型不匹配,AX为字,BYTE PTR ALFA指定字节 7.MOV ALFA...

C语言的几个问题,请高手指教
问题描述:1.在C语言中,char型数据在内存中的存储形式是___.A)补码 B)反码 C)原码 D)ASCII码 答案是D,但是在某些资料中说到“数据在内存中是以补码形式存放的”,这使我有些迷惑不解,请各位不吝指教。2.表达式18\/2*sqrt(4.0)\/8的数据类型为___A)int B)float C)double D)不确定 ...

武鸣县17270707042: C语言高手请进,几道题求解一、 使两个有序数列合成一个有序数列,合并后的数列仍然有序. 二、 编写函数,输入一个十进制数,将其转换为八进制、十... -
撒律肝欣:[答案] 分数很少啊,随便给你一题的答案吧: #include int gcd(int a, int b) { int r = a%b; if (r == 0) return b; else return gcd(b, r); } int main( ) { printf("%d\n", gcd(100, 70)); return 0; }...

武鸣县17270707042: c语言问题,高手请进! -
撒律肝欣: #include <stdio.h> #include <math.h> int zdgys(int x,int y); int zxgbs(int e,int f); void main() {int a,b,c,d;scanf("%d", &a); scanf("%d", &b);c = zdgys(a,b);d = zxgbs(a,b);printf("zdgys is %d\n", c);printf("zxgbs is %d\n", d);getchar(); ...

武鸣县17270707042: C语言编程问题 高手请进
撒律肝欣: ========================================================= 该程序主要几种在2点: 1.写入注册表,我有一个单独函数表示,第一个参数就是你BAT文件的路径,第二个参数随便取 2.关机,关机可以用NtshutdownSystem 也可以...

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

武鸣县17270707042: C语言问题 高手进来
撒律肝欣: #include <stdio.h> void del_substr(char *str, char *substr) { int i, j, k, si = 0; for(i = 0; str[i]; i++) { for(j=i, k=0; substr[k] == str[j]; k++, j++) if(substr[k+1] == '\0') { si = i; break; } } for(i = si; str[i]; i++) if(str[i+4] != '\0') str[i] = str[i+4]; str[i-4] = '\0'; } void main() { ...

武鸣县17270707042: 关于C语言问题,急!!高手请进! -
撒律肝欣: s是指针的指针,在这里是指向主函数的p指针的指针;**s就是主函数p所指地址的内容;p是指向一个动态存储地址,这是向系统要求配给的(int *)malloc(sizeof(int)),具体操作在教程里可以找...

武鸣县17270707042: C语言问题 高手请进
撒律肝欣: c语言是强制类型转换的,字符型的c1赋值给整型的a,a就等于c1的ASCII码值,'a'的ASCII码值是97.你可以在a=y这句后面加一句输出看看,这时的a就不是97.

武鸣县17270707042: c语言问题,高手进 -
撒律肝欣: 1. 机器不知道,编译器告诉他怎么做,他就怎么做.2. 编译器告诉他的,但是你可以非法访问,int* p = 244,*p = 0,会发生内存错误,操作系统有保护,但是有些是可以访问的,如堆栈溢出攻击.3. offer=3的话没区别,做的都是加法.4. 位数组?一个整数就可以看成一个长度为32的位数组,你可以设置或者清除其中的任意一位,bitvalue = (integer >> index) & 1(取),integer = integer & ~(1 integer = integer | (1 所以用int数组很容积就能实现位数组.

武鸣县17270707042: C语言一个很严重的问题 高手请进~~~^0^
撒律肝欣: 不是的, 选择A就错误了, 虽然程序能执行,但是会出现错误结果. 这是因为c 本身就代表这数组的地址. 而&c 是存放c数组地址的地址了

武鸣县17270707042: c语言问题高手进
撒律肝欣: /* 以下代码在VC2008下测试通过 */ #include <stdio.h> #include <stdlib.h> void main(void) { int i, n, m, sum; scanf("%d", &n); sum = 0; m = 1; for(i = 1; i <= n; ++i) { m *= i; sum += m; } printf("1!+2!+3!+......+n!=%d\n", sum); system("pause"); ...

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