谁帮我用C语言遍一个程序,运行结果为I LOVE YOU
main(){char st2[] ={73,32,76,79,86,69,32,89,79,85,0};printf("%s", st2);}或者 下面这个,这个适用井号拼出来的,呵呵,肯定一眼看不出来 #include "stdio.h"main(){ int str[10][8] = {0x3c,0x18,0x18,0x18,0x18,0x18,0x18,0x3c,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x7e,0x3c,0x42,0x42,0x42,0x42,0x42,0x42,0x3c,0x42,0x42,0x42,0x24,0x24,0x24,0x18,0x18,0x7e,0x02,0x02,0x3e,0x02,0x02,0x02,0x7e,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x42,0x42,0x24,0x24,0x18,0x18,0x18,0x18,0x3c,0x42,0x42,0x42,0x42,0x42,0x42,0x3c,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x3c};int loop, loop2,loop3,tmp;for(loop = 0;loop{for(loop2 =0; loop2 {if (str[loop2][0]==0){printf(" ");}else{tmp = str[loop2][loop];for(loop3=0; loop3 {if(tmp%2 !=0){putchar('#');}else{putchar(' ');}tmp/=2;}}}putchar('\n');}printf("end");getchar();}
C语言error c2059
1、c语言(数据结构)中,在函数定义的头部分&怎么使用?如果使用的是纯C语言,在函数定义的头部,不使用&来定义形参,当需将对形参的改变带回来时用指针即*。
大多数据结构教材沿用严蔚敏版教材的习惯,用类C语言,描述数据结构,借助C++中的引用即&来定义形参,这时起到作用类似于指针,但函数的写法更简洁。
2、你只要记住一点,如果需要将参数改变带回来就要用引用或指针来实现。
3*和&写的顺序是不同的,int * &c = a;//这里c是一个引用,它是指针a的引用int & *d;//这里d是一个指针,它指向引用,但引用不是实体,所以这是错误的
C语言:输入一串字符,判断有几个字母几个数学几个空格和几个其它...
#include #include /*for type check*/ #include /*for strlen()*/ int main() { int i; unsigned letters = 0; unsigned spaces = 0; unsigned digits = 0; unsigned others = 0; char line[256]; printf("Enter a line of words: \n"); gets(line); for(i = 0; i { if(isalpha(line[i])) ++letters; else if(isspace(line[i])) ++spaces; else if(isdigit(line[i])) ++digits; else ++others; } printf("The line you entered has:\n"); printf("%d letters\n", letters); printf("%d spaces\n", spaces); printf("%d digits\n", digits); printf("%d others\n", others); }
关于C语言 if(a[i]!=0 && a[j]!=0) if(a[j]%a[i]==0) a[j]=0;
程序如下:首先说明一下,因为你的student定义的并不是一个数组所以我是将student1,student2,student3分开算的,至于你说的不局限于3个,当然可以了,只不过你要分开求而已。
如下:**erage(&student1);**erage(&student2);**erage(&student3);total(&student1);total(&student2);total(&student3);我定义了两个函数一个**erage是求平均分的,还有一个total是求总分的,两个函数的形参都是student类型的指针,所以你只需要传入你定义的student类型变量的地址就行,如student1,那么他的地址就是&student1,你应该知道指针指向的是一个地址,所以得传地址了。
typedef struct date{int month;int day;int year;}data;typedef struct subject{int chinese;int math;int english;}subject;typedef struct student{int num;char name[20];int age;data birthday;subject score;}student;student student1={001,"Wang li",20,5,12,1990,70,80,90};student student2={002,"Chen li",19,4,8,1991,70,80,90};student student3={003,"he li",20,4,3,1991,70,80,90};float **erage(student * s){float **er;**er=(s->score.chinese+s->score.math+s->score.english)/3;return **er;}int total(student * s){int total;total=s->score.chinese+s->score.math+s->score.english;return total;}void main(){float a;int t;a=**erage(&student1);t=total(&student1);printf("%f\n%d",a,t);}
c语言编程,求素数的问题
他这样是筛素数a[i]最初等于2 他把能被2整除的都记为0了那在以后的运算中 保证a[i]是素数 也就是除一个素数a[j]等于0 说明他已经被一个素数整除了 已经不是素数了所以就不用再计算他了也就是 先筛掉2的倍数再筛掉3的倍数再筛掉5的倍数(4被2整除 已经记为0)再筛掉7的倍数(6被2整除 已经记为0)再筛掉11的倍数 (8被2整除 9被3整除 10被2整除 都已经被记为0)。
。
。
。
。
最后剩下的就都是素数了 楼主主要注意一下i和j的循环j的循环是在i的循环里面的,而且他们同是代表数组a的下标那么当i=2时,是进入j的循环,此时是要将j的循环跑完之后才再进行i++那么a[j]已经记为0的数,也就是j,i的循环肯定是之后才会循环到再说明白点,当i=2时,你把j=4的a[j]=0,那么此时的i是2,之后i会自加到4那么a[i]就是0如果楼主想不明白可以把i和j的循环打出来看一下,就像这样for(i=2;ifor(j=i+1;j{printf("i=%d j=%d\n",i,j);if(a[i]!=0&&a[j]!=0)if(a[j]%a[i]==0)a[j]=0;}
c语言内存分配的问题
例struct peson{char name[30];char sex;int age;float height;}per={"LI",'M',20,175.2};先说内存分配结构体变量per的内存空间是由它的成员所占的内存之和且是连续的按定义顺序排列的成员1 name[30]占30字节2 sex 占1字节3 age占2字节4 height占4字节也就是说per占30+1+2+4=37字节连续的内存上面的per={"LI",'M',20,175.2};就是结构体变量的初始化”LI“对应的是name [30],'M'对应的是sex以此类推如果设的是结构体组举例per[3]也就是说占用连续3个上面所说的结构体变量per的内存他的初始化和2维数组类似,但是要注意格式。
第一个是字符串所以是”“,第二个是字符所以是'',第三个和四个我就不多说了。
所以说结构体变量的初始化和数组的初始化类似,只要注意下格式就行了。
希望对你有所帮助。
关于C语言,结构体链表数据输出的问题
很简单,你开始写的程序里,fread调用三次之后,feof判断文件是否结尾,结果是否,所以会第四次循环又从文件中读了一次,但这次调用fread是读不出来内容的,而文件指针指向了文件结尾。
所以data中的内容是随机的(malloc分配的内存内容不进行清零的处理)。
所以好的编程习惯是读的时候也做一下判断:if(fread(fread(p,sizeof(data),1,fp) == sizeof(data))相等说明读文件成功,否则的话说明到了文件结尾或是文件有错误。
另外你的程序中还隐藏着一个问题,用malloc分配的内存没有释放,当然你做个程序例子是可以,但真正编程序时这会造成内存泄漏。