问哈C语言问题
/*第一个程序*/
#include
int main()
{
int a, b;
int *p = &a, *q = &b;//指针要赋值之后才能使用!
...
}
/*第二个程序*/
char str1[20],str2[20],str3[20];//这样申明使str1,str2,str3成为静态指针(应该是这样叫,总之
//是不能被重新赋值),因此调用swap函数时会出错
//解决办法:
//另外申明三个一般指针:char *p_str1=str1, *p_str2=str2, *p_str3=str3; 并且在后续程序中分别将str1,str2,str3替换为p_str1,p_str2,p_str3
1到100的之间的偶数和奇数,分别的和
#include "stdio.h"#include "stdlib.h"
void main()
{
int i;
int Sum1 = 0;
int Sum2 = 0;
for (i=1; i<=100; i++)
{
if (i%2 != 0)
{
Sum1 =Sum1 + i;
}
else
{
Sum2 = Sum2 + i;
}
}
printf_s("%d
", Sum1);
printf_s("%d
", Sum2);}//我的试vs2008用的是printf_s,你要是vc6.0 你就用printf
}
10到1000之间能同时被2 3 7 整除的数:
#include "stdio.h"
void main()
{
int i = 10;
int Sum1 = 0;
for (i=42; i<=1000; i+=42)
{
if (i%(42) == 0)
Sum1 = i;
printf_s("%d
", i);
}
}
第一行数组声明方式错误,应该是int a[4]={0};
第四行For循环i的初始值不对,应该是从1开始: for (i=1;i<4;i++) a[0]=a[0]+a[i];
另外,这个算法没有考虑溢出的问题,所以完整的应该是这样子的:
long long llResult = 0;
int a[4]={4*0};
int i;
for (i=0;i<4;i++) scanf("%d",&a[i]);
for (i=0;i<4;i++) llResult=llResult+a[i];
printf( "%lld ",llResult);
return 0;
=======================================================
求10个元素的和:
第一个错误:int a[11], i;中漏掉了a[11]的初始化,应写作:int a[11]={0}, i;
第二个错误:scanf("%d",&a);应写作scanf("%d",&a[i]);
第三个错误:第5行那个for(i=1;i<=10;i++);中多了个分号,应删除。
第四个错误:同样没有考虑相加之后,结果溢出的问题。
=====================================================
写调试过程:
首先是正确源代码如下:
int i,n=10,a[10];
float av=0.0;
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n;i++)
{
av+=a[i];
if (i != 0 && i % 3 == 0)
{
printf("\n");
}
printf("%d ",a[i]);
}
// Print Sum in new line
if ((i - 1) % 3 == 0)
{
printf("\n");
}
printf("av=%f\n",av/n);
return 0;
至于过程还是你自己写吧。
==================================================
改错:
a=“C Language Program” ;那题中,要把char a[]改成char *a=null;
==================================================
改错:
最后那道题中char a[6] ={‘a’,‘ b’,‘ c ’,‘ d’,‘ e ’,‘ f’ } ;中成对的单引号之内不应该有空格;另外,for (i=5;a[i]!='\ 0’;i--)中a[i]!='\0'中a[i]!='\0'这种写法是不健壮的,因为数组a的前一个字节可能不是空,这时就会出现边界溢出错误;
你想问啥?
c语言问题。我是这么想的哈~不是应该先运行主函数的吗a=funa=2所以先...
是先运行主函数没错,但是到fun(a)的时候就会跳转到函数fun中运行,函数fun运行完后再执行后面的printf("%d\\n",a)
问一个C语言问题哈
oxFFFF表示十六进制数,十十进制的65535,要求输出的%u是无符号整型十进制数,所以结果为65535.
C语言问题,x=3,求x+=x*=x++的值,求高手给解一下,给出解释.谢谢哈!
这个不同的编译器处理方式不同。你可以这样理解:x*=x++;x+=x;得:x++ \/\/ 4->x x*=x \/\/ 4*3->x(12)x+=x \/\/ 12+4->x(16)
啊哈哈哈 一道简单的C语言基础题
数组元素下标从0开始,str的第一维下标从0~19,第二维下标从0~2。str[3][20]里,第0行20个字符存放"basic",第1行20个字符存放"foxpro",第2行20个字符存放"windows"。二维数组str只用一个下标的时候,这个下标是第二维的下标,所以str[2]指的就是第2行的20个字符数组,里面存放的是"...
c语言选择题,这两道题求c语言大哥解答,详细点哈,谢谢
第一题 和++运算优先级相等,运算自右向左 p++; 相当于p++后再*p,所以p指向&a[1], *p等于11 比+的运算优先级高 p+=1;相当于*p=*p + 1;答案为C 第二题 答案为A S是数组首地址,不是指针,不可移动
C语言问题
第一层1个 第二层2个 第三层4个 第四层8个 第五层16个 ...第n层 有2倍(n-1)层的个数 但是不知道这棵树是不是满二叉树,所以要计算第几层,有个公式(看图)将700带入,得到n层,然后计算n-1层有多少个节点,700减去得到的节点数,就是叶子节点了。。。
c语言相关问题求教。。。详细一点哈
\/\/代码如下#include<stdio.h>#include<stddef.h>struct s{ char a; int b; long c;};int main(){ printf("结构体s的大小为:%d\\n", sizeof(s)); int size_a = sizeof(char); int size_b = sizeof(int); int size_c = sizeof(long); int offset_a...
简单的C语言指针问题哈!为啥当输入的字符中出现有空格,空格后面的字 ...
include<stdio.h>#include<stdlib.h>void del_space(char *);\/\/把用户输入字符串中的空格去掉,并打印出来,可以循环接受输入,直到用户输入空行为止int main(void){char s[81];do{puts("请输入一些字符:");gets(s);puts("OK,我们帮你去掉了空格,记得点赞哦:");del_space(s);\/\/调用去...
计算机二级C语言题
答案是A啊。'a'++自然是错误的,'a'是常量,不可能++;但++的不是'a',而是指针a指向的内容*a,*a=c2,c2是变量可以++;c2原来是'a',c2++当然就是'b'了。至于你说的“不能给实参”的问题,你理解成变量传递了,而这里是指针传递:传递的是指向变量的指针,函数中直接对指针指向的内容操作...
有关与啊哈c语言的问题
同意楼上观点,或者只下载这个dll文件,放到指定文件夹。一、如果您的系统提示“没有找到SciLexer.dll”或者“缺少SciLexer.dll”等类似错误信息,请把SciLexer.dll下载到本机 二、直接拷贝该文件到系统目录里:1、Windows 95\/98\/Me系统,则复制到C:WindowsSystem目录下。2、Windows NT\/2000系统,则...
裔秀瑞潘: #include int main() { int n,s,j; for(n=1;n{ s=_______0____; for(j=1;jif(n%j==0)s=s+j; if(________n==s______)printf(" %d\n",s); } return 0; }
宽甸满族自治县15836564632: C语言编程问题 - ?
裔秀瑞潘: 思路:先确定一个比较大的范围,然后用减半折衷的办法尝试.比方说,你可以把增长率设为0%和100%,然后再尝试这之间的数字就可以.
宽甸满族自治县15836564632: 问一个C语言的问题 - ?
裔秀瑞潘: 1、应该分开写,一个在头文件,一个在.c文件.如果分要一起,可以用.c,但是一定要使用包含include 2、#define uint unsigned int #define uchar unsigned char 都是宏定义,使用unsighde int替换uint 使用unsigned char 替换uchar.写的不正规...
宽甸满族自治县15836564632: 问一道C语言的问题 - ?
裔秀瑞潘: 第一,for用于查找实际所输入的字符s[i]. 第二,输出错位的字符前判断s[i]是为了保证s[i]确实是所输入的字符. 如果扫到s[10] 也就是char字符0的时候,会不会因为s[i] 为0 ,而导致 && 不成立?——不会的.
宽甸满族自治县15836564632: 菜鸟问个C语问题?
裔秀瑞潘: 你的第一个SUM 和第二个 SUM 不一样,虽然都是SUM 第一个就是A 除以B 而第二个 则是 A除以B所得的结果 再去除以C 这属于赋值的问题
宽甸满族自治县15836564632: 问个C语言编程问题?
裔秀瑞潘: 大概是这样吧. 没编译器不能测试. 你试试看 #include <stdio.h> void main() {float k,w,L;printf("Input k and w :");scanf("%f%f",&k,&w);L=60*k+2*w-k;printf("%.1f\n",L); }
宽甸满族自治县15836564632: c语言问题 - ?
裔秀瑞潘: #include int main(){ int a, b, n, j, m, f1, f2, f3; while (1) { scanf("%d%d%d", if (a == 0 && b == 0 && n == 0) break; f1 = f2 = 1; m = 2; for (j...
宽甸满族自治县15836564632: 问几个C语言程序的问题 - ?
裔秀瑞潘: 1.#include int main() {char s[5];int i=0;printf("请连续输入5个字母\n"); for(i=0;i scanf("%c",&s[i]);for (i=0;i {if(s[i]>='A'&&s[i] s[i]+=32;//将大写字母改为小写}printf("转换后的字母为:"); for(i=0;i printf("%c",s[i]);printf("\n");...
宽甸满族自治县15836564632: 问两个C语言的问题啊 ~~ 谢谢了``` - ?
裔秀瑞潘: #inlude void main(){ char a[40],b[20]; int i,j; scanf("%s,%s",a,b); for(i=0;a[i]!='\0';i++) for(j=0;b[j]!='\0';j++) { ...
宽甸满族自治县15836564632: 问一个C语言问题 - ?
裔秀瑞潘: 看了半天,最重要的错误是你的for循环没有结束,导致了死循环,进入for循环后,执行DO while语句,当while语句退出时,i=1;从而导致了死循环,其次,要添加一个变量temp记录当前最大的i值,也就是运...