c语言编程的问题

作者&投稿:计审 (若有异议请与网页底部的电邮联系)
新手:C语言编程问题~

#include #include int AskAndAnswer(char q[]){ char input[2]; puts(q); scanf("%s", input); // 跳过空格、制表符或回车 return (0 == strcmp(input, "Y") );}void main(){ if (AskAndAnswer("A是逗比么?") ) { if (AskAndAnswer("那么A是大逗比么?") ) { AskAndAnswer("果然有眼光!"); } else { AskAndAnswer("A不是大逗比是什么…"); } } else { if (AskAndAnswer("难道你是A么?") ) { AskAndAnswer("你明明就是逗比"); } else { AskAndAnswer("A给你好处了?"); } } printf("恶搞一下
"); return;}

在你的基础上。。。。给你修改了。。。。测试了下。。。。运行结果就是你想要的那样。。。希望能帮到你。。。

void main(){
int i,j,k;
char c='*';
for(i=0;i<=3;i++)
{for(j=3-i;j>0;j--)
printf(" ");
for(k=2*i+1;k>0;k--)
printf("%c",c);
printf("
");
}

for(i=0;i<3;i++)
{for(j=0;j<=i;j++)
printf(" ");
for(k=0;k<2*(3-i)-1;k++)
printf("%c",c);
printf("
");
}
}

#include<stdio.h>
#define MAX 3
struct Data
{
char name[7];
int career;
int device;
};

struct Data PeopleInfo[MAX];
struct Data *temp;
struct Data *Ptr[MAX];

int DataSort(struct Data *[]);
int PrintInfo(struct Data *[]);

void main()
{
int i,j;

for(i=0;i<MAX;i++)
{
printf("input information:\n");
printf("name:");
scanf("%s",&PeopleInfo[i].name,&PeopleInfo[i]);
//scanf("%s,%d,%d",&PeopleInfo[i].name,&PeopleInfo[i].career,&PeopleInfo[i].device);
printf("Working Experience:");
scanf("%d",&PeopleInfo[i].career);
printf("Device:");
scanf("%d",&PeopleInfo[i].device);

}

for(j=0;j<MAX;j++)
{
Ptr[j]=&PeopleInfo[j]; //将指针数组里面的每个指针指向信息数组

}

DataSort(Ptr);
PrintInfo(Ptr);
}

int DataSort(struct Data *[])
{
int i,j;

for(i=0;i<MAX;i++) //冒泡排序
{
for(j=0;j<MAX-1;j++)
{
if(Ptr[j]->career<Ptr[j+1]->career ) //这里比较完career的大小之后交换的是指针所指向的地址
{
temp=Ptr[j];
Ptr[j]=Ptr[j+1];
Ptr[j+1]=temp;
}
}
}

return 1;
}

int PrintInfo(struct Data *[])
{
int k;
for(k=0;k<MAX;k++)
{
printf("Name: %s\n",Ptr[k]->name);
printf("Working Experience: %d years\n",Ptr[k]->career);
printf("Device:\t");
if(Ptr[k]->device==0)
printf("Device: Display\n");
else if(Ptr[k]->device==1)
printf("Device: Keyboard\n");
else
printf("Device: Mouse\n");
}

return 0;
}

-------------------------
冒泡排序哪里不是你自己写的吧,
越界了都不知道
还有就是读入的时候
scanf("%s,%d,%d",&PeopleInfo[i].name,&PeopleInfo[i].career,&PeopleInfo[i].device);
这一句很有问题
输入aa,10,2\n
程序会把这个直接赋值到PeopleInfo[i].name,而导致后边两个没有赋值
我改了一下
输入的时候吧3个都分开来输入
aa\n
10\n
2\n

其他问题不大

#include<stdio.h>
#define MAX 3
struct Data
{
char name[7];
int career;
int device;
};

struct Data PeopleInfo[MAX];
struct Data *temp;
struct Data *Ptr[MAX];

int DataSort(struct Data **); // 这里
int PrintInfo(struct Data **); // 这里

void main()
{
int i,j;
char c;

for(i=0;i<MAX;i++)
{
printf("input information:\n");
scanf("%s",PeopleInfo[i].name); // 这里
fflush(stdin);
scanf("%d%d",&PeopleInfo[i].career,&PeopleInfo[i].device);
fflush(stdin);
}

for(j=0;j<MAX;j++)
{
Ptr[j]=&PeopleInfo[j]; //将指针数组里面的每个指针指向信息数组

}

DataSort(Ptr); // 你根本错误的原因就是对这里的Ptr不理解,
PrintInfo(Ptr); // 想想为什么是**,而不是*.本身是个指针变量(*)
} // 而Ptr是本数组名,又是一个*, * + * ,就是**了。

int DataSort(struct Data **Ptr) // 这里
{
int i,j;

for(i=0;i<MAX;i++) //冒泡排序
{
for(j=0;j<i-j;j++) // 这里冒泡冒错了
{
if(Ptr[j]->career<Ptr[j+1]->career ) //这里比较完career的大小之后交换的是指针所指向的地址
{
temp=Ptr[j];
Ptr[j]=Ptr[j+1];
Ptr[j+1]=temp;
}
}
}

return 1;
}

int PrintInfo(struct Data **Ptr) // 这里
{
int k;
for(k=0;k<MAX;k++)
{
printf("\nName: %s\n",Ptr[k]->name);
printf("Working Experience: %d years\n",Ptr[k]->career);
printf("Device:\t");
if(Ptr[k]->device==0)
printf("Display\n");
else if(Ptr[k]->device==1)
printf("Keyboard\n");
else
printf("Mouse\n");
}

return 0;
}

注意输入的时候,每输入一个回车一下.
错误的地方已经在程序里都注释了

#include<stdio.h>
#define MAX 3
struct Data
{
char name[7];
int career;
int device;
};

struct Data PeopleInfo[MAX];
struct Data *temp;
struct Data *Ptr[MAX];

int DataSort(struct Data *[]);
int PrintInfo(struct Data *[]);

void main()
{
int i,j;

for(i=0;i<MAX;i++)
{
printf("input information:\n");

scanf("%s%d%d",&PeopleInfo[i].name,&PeopleInfo[i].career,&PeopleInfo[i].device);

}

for(j=0;j<MAX;j++)
{
Ptr[j]=&PeopleInfo[j]; //将指针数组里面的每个指针指向信息数组

}

DataSort(Ptr);
PrintInfo(Ptr);
}

int DataSort(struct Data *[])
{
int i,j;

for(i=0;i<9;i++) //冒泡排序
{
for(j=0;j<9;j++)
{
if(Ptr[j]->career<Ptr[j+1]->career ) //这里比较完career的大小之后交换的是指针所指向的地址
{
temp=Ptr[j];
Ptr[j]=Ptr[j+1];
Ptr[j+1]=temp;
}
}
}

return 1;
}

int PrintInfo(struct Data *[])
{
int k;
for(k=0;k<MAX;k++)
{
printf("Name: %s\n",Ptr[k]->name);
printf("Working Experience: %d years\n",Ptr[k]->career);
printf("Device:\t");
if(Ptr[k]->device==0)
printf("Device: Display\n");
else if(Ptr[k]->device==1)
printf("Device: Keyboard\n");
else
printf("Device: Mouse\n");
}

return 0;
}

貌似最后的 是print 而不是 prentf .... 还有for 后面接的是 你要运行的那个 个数而不是附值判断 你把 for 改成 if 然后在程序最后面再加个 end if 应该就差不多了 ... 我就发现这么点....
我的专业好像有读

上面那个人说的不错,是我同学,专业很不错。。去试试看...


C语言编程最常见的15个错误
C语言编程最常见的15个错误 C语言是一种结构化语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护。以下是关于C语言编程最常见的15个错误,希望大家认真阅读!1.书写标识符时,忽略了大小写字母的区别。main(){ int a=5;printf("%d",A); } 编译程序把a和A认为是两个不同的变量名,而...

学习C语言程序设计要注意哪些易犯的错误?
在许多高级语言中,用“=”符号作为关系运算符“等于”。如在BASIC程序中可以写 if (a=3) then …但C语言中,“=”是赋值运算符,“==”是关系运算符。如:if (a==3) a=b;前者是进行比较,a是否和3相等,后者表示如果a和3相等,把b值赋给a。由于习惯问题,初学者往往会犯这样的错误。5....

基础C语言编程时易犯错误有哪些
一、基础知识和数据类型、表达式 1、{},[],(),‘’,“”不配对。解决这个问题最好的方法就是每当写这些符号的时候就先写成一对,然后再在中间加内容。 2、忘记在语句的末尾加分号,或在预处理命令后多加分号。记住:每一个语句的后边都要加分号,而预处理命令并不是语句,所以不加分号...

编程语言的问题
面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)是一种计算机编程架构。OOP 的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成。OOP 达到了软件工程的三个主要目标:重用性、灵活性和扩展性。为了实现整体运算,每个对象都能够接收信息、处理数据和向其它对象发送...

作为一个语言编程的初学者,有哪些问题是要注意的?
不妨告诉自己:出bug很正常,没人能一次搞定!告诉自己:出错的原因是符合逻辑的,并可以找到的,任何问题都是可以被解决的。可以和团队里其他人谈谈,或是找前辈请教,通常都可以找到解决方案。关于 “正确编程学习法” 和 “最佳编程学习法” 的文章有很多,但教你“坚持”的却不多。其实,学习编程,...

C语言问题编程问题?
int main(){ int i,j,n=-1;float scores[30],sum=0,temp;printf("请输入n的值(0~30):");while(n<0 || n>30) scanf("%d",&n);if(!n) return 0;for(i=0;i<n;scanf("%f",&scores[i]),sum+=scores[i],i++)printf("请输入学生%d分数:",i+1);printf("%d名学生的...

c语言编程中的小问题
1、可以的。a = (int)(a * 100 + 0.5); \/\/ 将第三位小数加上去,通过强制类型转换,则会丢弃小数部分a = a \/ 100; \/\/ 由于a是double类型,故商包含2位小数a = (int)(a * 100 + 0.5)\/100.0; \/\/ 这样合并会得到相同的结果。2、可以这样操作。a = (int)(a * 100)\/100.0...

c语言作业编程问题
c语言作业编程问题 1、杨辉三角形的每一项数据正好是组合(即n!\/m!\/(n-m)!)的值,其中n是行数(从0行开始);m是列数(从0列开始)。请使用上述算法得到杨辉三角形每一个位置的值并按下图打印。要求用... 1、 杨辉三角形的每一项数据正好是组合 (即n!\/m!\/(n-m)!)的值,其中n是行数(从0行开始);m...

急求c语言编程题目
rand()函数是按指定的顺序来产生整数,因此每次执行上面的语句都打印相同的两个值,所以说C语言的随机并不是真正意义上的随机,有时候也叫伪随机数,使用 rand() 生成随机数之前需要用随机发生器的初始化函数 srand(unsigned seed)(也位于 stdlib.h 中) 进行伪随机数序列初始化,seed 又叫随机种子,通俗讲就是,如果...

请大神们帮忙解决一个c语言的编程题,具体问题如下:
include <stdio.h>int main(){char n[13]="742683613984";int S;int i;int len;char* chp;len = 0 , chp = n;while(*chp) \/\/len是字符串n的长度{len++;chp++;}for(S=0;S<8;S++){for(i=0;i<len && n[i]<=n[i+1];i++);if(S>0)printf(",");printf("%c",n[...

莒县15036925887: c语言编程要注意的问题?
梅群复方: C语言的最大特点是:功能强、使用方便灵活.C编译的程序对语法检查并不象其它高级语言那么严格,这就给编程人员留下“灵活的余地”,但还是由于这个灵活给程序的调试带来了许多不便,尤其对初学C语言的人来说,经常会出一些连自...

莒县15036925887: C语言的 编程问题
梅群复方: 其实是从1000开始的,只不过是因为命令运行窗口显示有限,所以是给你的感觉是从9702开始的,打印数太多,显示不出来而已!不信你把j<10000改成j<1100 ,看看是不是从1000开始的! 运行后 去C盘 找到一个文件为 b.txt的文件,打开 里面就是结果了!

莒县15036925887: C语言编程中的问题 -
梅群复方: 这些是header file.如果你什么都不include的话,那就是最原始的C,什么function都没有,只有getch,putch这些最简单最基本的function,如果你要用printf,这样的就必须include支持相应library的header file,这些file里边有你要用的funtion prototype,没有这些header file,你就不能够使用这些function ,或者class,或者变量.

莒县15036925887: 有关C语言编程的问题
梅群复方: 这么写就可以了: 在最前面加上#include<stdlib.h> 然后在main()函数最后加上: system("pause"); 这样运行完毕之后就不会自动退出,而会等待你确认 比如,这么写一个程序(用于计算从1到n的连加和): #include<stdio.h> #include<...

莒县15036925887: C语言的编程问题
梅群复方: #include<stdio.h> main() { int i,j,n; for (i=1;i<=1000;i++) { n=0; for(j=1;j<i;j++) if(i%j==0) n=n+j; if (n==i) { printf("\n%d its factors are ",i); for(j=1;j<i;j++) if(i%j==0) printf("%d,",j); } } getchar(); }

莒县15036925887: 关于C语言编程的一些问题
梅群复方: 一些小问题. 帮你改正了. 你看看加粗的部分 #include <stdio.h> void main() { int f(int x); int a,b; scanf("%d",&a); b=f(a); printf("%d",b); } int f( int x ) { int c,sum = 0;if ( x < 10 ) sum = x; else { for( x; x; x=x/10 ) //条件错了.{ c=x%10;//sum=0; //每次循环都将sum置0了. //x=x/10; //for的步长就是x/10 sum=sum+c; } }return(sum); }

莒县15036925887: 有关c语言编程的问题 -
梅群复方: 要有通用性的话建议把各个功能写成函数,方便调用和重用.至于界面美观和操作性就要看你制作界面的程度了

莒县15036925887: C语言编程遇到的问题,高手帮解释下. -
梅群复方: 没用过turbo C.感觉可能的原因有两个:一个是第二行mani()可能需要改为void main()或int main()一个是最后可能需要加return 0;(如果上面改为int main()的话)如果是初学C/C++,在条件允许的话,建议使用Dev C或VC,或者linux下用gcc:)

莒县15036925887: C语言编程的问题
梅群复方: #include<stdio.h> #include<stdlib.h> main() { int n=1,i,j,s[11][11],x,y; clrscr(); for(i=0;i<=10;i++) for(j=0;j<=10;j++) s[i][j]=0; randomize(); while(n<=10) { x=1+random(9); y=1+random(9); if(s[x][y]!=9) {s[x][y]=9; for(i=-1;i<=1;i++) for(j=-1;j<=1;j++) if(s[x+i][y+j...

莒县15036925887: C语言编程初学问题 -
梅群复方: (1)程序输出:c1=a;c2=b;c1=97;c2=98;因为:你用%c,就是你要输出一个字符,97的ascii码就是小写字母a,98为b; (2)如果你把c1=197,c2=198,应该会提示隐式转换吧,如果定义char c1,c2,默认为有符号的char型,取值范围为-128~127,因此输出的是197-256=-59,198-256=-58,貌似用%c一般机器输出的是?吧,一般的就输出0-127能输出字符吧. (3)换成int和(2)的%c一样,%d就是int的值.

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