C语言牛人进啊

作者&投稿:氐侮 (若有异议请与网页底部的电邮联系)
C语言牛人请进~

# include
# include
int main (void)
{
double a,b;
double j,k;
printf("请输入 a = ");
scanf("%lf", &a);
printf("请输入 b = ");
scanf("%lf", &b);
j = sin(a);
k = sin(b);
printf("b的正弦值为:%lf
", j);
printf("b的正弦值为:%lf
", k);
if(j > k)
printf("a的正弦值大,值为:%lf
", j);
else
printf("b的正弦值大,值为:%lf
", k);
return 0;
}

//---------------------------------------------------------------------------

#include
#include
#include
int comp(const void *a,const void *b)
{
return *(const char *)b-*(const char *)a;
}
int main(void)
{
char str[80];
gets(str);
qsort(str,strlen(str),sizeof(char),comp);
puts(str);
return 0;
}
//---------------------------------------------------------------------------

你要使用vc可以模拟键盘 发送Alt+Enter信息

如果用tc就不行了因为tc是16位的没有api给你调

vc里的实现方法
在程序中用Win32 API函数来实现这个功能
据我所知,微软没有提供有关这方面的任何文档。
但是,当用户按下ALT+ENTER时,Windows 9x用如下特殊的加速键ID发送WM_COMMAND消息到控制台窗口。

#define ID_SW99vCH_CONSOLEMODE 0xE00F

这个加速键ID没有对外公开,所以你在Win32 API的有关文档中找不到关于ID_SW99vCH_CONSOLEMODE的内容。
为了在普通窗口和全屏模式之间来回转换,可以象下面这样用SendMessage函数。

SendMessage(hWnd,WM_COMMAND,ID_SW99vCH_CONSOLEMODE,0);

Windows NT/2000与Windows 9x中控制台程序的全屏模式开关处理方法是不一样的。不能通用。在Windows NT/2000中要使用两个未公开的Win32 API函数来存取控制台窗口。这两个函数是:

BOOL SetConsoleDisplayMode (
HANDLE hOut, // 标准输出句柄
DWORD dwNewMode, // 指定显示模式
LPDWORD lpdwOldMode, // 用于前一个显示模式值的变量地址
);

BOOL GetConsoleDisplayMode (
LPDWORD lpdwMode, //用于当前显示模式值的变量地址
);
这两个函数从Kernel32.dll中输出,但是Kernel32.lib中没有列出它们。所以我们要用GetProcAddress函数动态加载。方法如下:

typedef BOOL (WINAPI *PROCSETCONSOLEDISPLAYMODE)(HANDLE,DWORD,LPDWORD);
typedef BOOL (WINAPI *PROCGETCONSOLEDISPLAYMODE)(LPDWORD);

PROCSETCONSOLEDISPLAYMODE SetConsoleDisplayMode;
PROCGETCONSOLEDISPLAYMODE GetConsoleDisplayMode;

HMODULE hKernel32 = GetModuleHandle("kernel32");

SetConsoleDisplayMode = (PROCSETCONSOLEDISPLAYMODEELLWND)
GetProcAddress(hKernel32,"SetConsoleDisplayMode");

GetConsoleDisplayModeplayMode = (PROCGETCONSOLEDISPLAYMODE)
GetProcAddress(hKernel32,"GetConsoleDisplayMode");

HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);

DWORD dwOldMode;
SetConsoleDisplayMode(hOut,1,&dwOldMode);

不知道你是不是在学ncurses,在ncurses里面有实现的方法。

要保存之前的屏幕,然后在刷新小视口,在关闭小视口时再将原来保存的屏幕返回当前。以下2个ncurses的屏幕存储函数可以实现
scr_dump()函数可以把当前屏幕的内容存入指定文件,即以文件名作为函数的参数(函数原型:scr_dump(const char *file))。
scr_restore()函数调用屏幕数据文件来恢复屏幕( 函数原型:scr_restore(constchar *file))。

用一个数组 buf[20*20*2]用来保存大小为20*20的视口
再用gettext 和puttext实现切换
具体的可以参考C语言图形

Alt+回车


C语言牛人进啊
你要使用vc可以模拟键盘 发送Alt+Enter信息 如果用tc就不行了因为tc是16位的没有api给你调 vc里的实现方法 在程序中用Win32 API函数来实现这个功能 据我所知,微软没有提供有关这方面的任何文档。但是,当用户按下ALT+ENTER时,Windows 9x用如下特殊的加速键ID发送WM_COMMAND消息到控制台窗口。defin...

英文词汇牛人进!!需要很精准表达的词汇!!
1. 归功于 - due to是“由于”,中性或者略偏贬义,所以用来表达“归功于”不恰当 - 从你的例句来看,可用的选项有thanks to、owing to、attribute to甚至because of(翻译最重要的是表达意思,不一定要死扣字眼)- thanks to比较口语化,owing to中性,attribute to则比较正规,所以这里建议用thank...

c语言进修问题【牛人入】
举个例子,c语言的基本就是砖块,mfc的基本就是砖块砌起来的各种形状的墙。如果你纯粹想修房子(做个应用程序,比如word),那么建议选择搭建好的墙,也不用知道太多细节(c语言的细节,比如内存管理),如果你想学习,想提高,那么还是从如何砌砖(c\/c++)开始学习积累。所谓深,有两种情况。一是非常...

c语言进修问题【牛人入】
条件改成while(scanf("%d%d",&a,&b)!=EOF){ 。。。}即可。在需要结束的时候按ctrl+z,然后回车即可退出 我这种方式不正是ACM标准给出的吗?

高中英语好的牛人请进!!!
你好,我是同济大学的在校生,前几天回答了几个即将参加高考和中考的学弟学妹的问题,突然之间感觉很希望尽可能地帮助初高中的学生。所以最近一直在百度知道里面回答类似的问题。像英语这类的课程应该比较提高(当然,英语是我初高中时候最有把握的一门课,在高手如林的重点高中,英语卷面成绩第一总能帮我...

加急:法语牛人进(二)
信封天主教的地区大多数位于法国的西部,东部和北部。与之相反的是,与西班牙和意大利在历史,语言,文化上渊源甚深的法国南部地区天主教徒只占很少一部分。Quelquefois une frontiere invisible separe une region ou 80% des habitants sont catholiques pratiquants d'une autre ou les croyants ne ...

口语好的各位牛人请进!怎么让英语的口语流利起来,我的英语底子不错,词...
第六.要加强交际训练。语言的运用离不开频繁强化训练,只有交际,才能学好。第七.尽量用第一人称来记习惯用语和句型,以便记忆牢固。第八.上下相连,从不孤立。记忆英语要结合上下文,不要孤立的记单词和短语,要把握句中的用法。第九.现在网上不是有很多免费口语交流网站,与老外真实性的交流学习,...

加急:法语牛人进(翻译有赏)
La France, pays catholique?La Suede a une eglise d'Edat, la France n'en a plus depuis 1905. En Suede, on peut marier a l'eglise ou a la mairie. En France, on doit se marier a la mairie, ensuite on peut se marier a l'eglise, au temple, a la synagogue.法国人信奉...

英语牛人进来教下方法...
还有不同语言之间存在词汇缺失现象,有些汉语词汇在英语里不存在,所以要想一一对应是不可能的,这点切记,切记。 7. 功夫下在课外 课堂上当然要认真听课,要跟上老师的节奏。不懂之处马上记下来,怎么记——直接记不会的句子最好!下课后及早解决!我前面讲过,要不断清除障碍,如果疑难没得到及时解决,必然问题成堆,...

C语言高手进
else { if((b*b-4*a*c)>=o)x1=((-b+sqrt(b*b-4*a*c))\/2*a);x2=((-b-sqrt(b*b-4*a*c))\/2*a);printf("%d %d\\n",x1,x2) ;} else { printf("error\\n");} } 改成 if(a==0){printf("error\\n");} else { if((b*b-4*a*c)>=0){x1=((-b+sqrt(b*...

玉溪市13585738363: C语言牛人请进 -
姚威刺五: # include int main (void){ double a,b; double j,k; printf("请输入 a = "); scanf("%lf", &a); printf("请输入 b = "); scanf("%lf", &b); j = sin(a); k = sin(b); printf("b的正弦值为:%lf\n", j); printf("b的正弦值为:%lf\n", k); if(j > k) printf("a的正弦值大,值为:%lf\n", j); else printf("b的正弦值大,值为:%lf\n", k); return 0;}...

玉溪市13585738363: C语言的高手进. -
姚威刺五: #include<stdio.h> int main(){ int x; int y; printf("输入x和y,以逗号隔开:\n"); scanf_s("%d,%d", &x, &y); printf("差:%d,和:%d,积:%d,商%d,余数%d",x-y, x+y, x*y, x/y, x%y); return 0; }

玉溪市13585738363: C语言高手进..
姚威刺五: 我的答案: #include "stdafx.h" #include <stdio.h> #include "stdlib.h" #include "string.h" int main() { FILE *file,*filenew; int j,k=1,z=0,sum=1; int i=49; char buff[1000],buffnew[1500]; file=fopen("E:\\xiti\\area1\\11.txt","r+"); if(file==NULL) { ...

玉溪市13585738363: C语言高手进!
姚威刺五: #include<stdio.h> void main() {int i=0,j=0;int array[3][3];int sum1=0,sum2=0;//sum1左->右的对角线 sum2相反printf("请为3*3矩阵赋值:");for(i=0;i<=3;i++){for(j=0;j<3;j++){printf("请输入第%d行%d列的值:",(i+1),(j+1));...

玉溪市13585738363: C语言高手进 -
姚威刺五: 回lostajie的,有谁一句话用两个空格的1:#include <stdio.h> void main() { int a[10],i,min; for(i=0;i<10;i++) scanf("%d",&a[i]); for(min=a[0],i=0;i<10;i++) if(min>a[i]) min=a[i]; printf("最小值是%d",min); }2:#include <stdio.h> void main() {char s,n...

玉溪市13585738363: c语言高手进 啊
姚威刺五: a=3,b=4,c=5 !(a+b)=1(7)=0 0+c-1=4 为真 b+c/2=4+2=6为真 c-1 && b+c/2 就为真啊 t=1

玉溪市13585738363: C语言高手进、
姚威刺五: #include <stdio.h> void main() { int X; double sum; printf("sum=X%%2/3+7,输入X的值求sum:\n"); //必须用%%才能输出% scanf("%d",&X); sum=double(X%2)/3+7; //必须进行强制类型转换,转换为double,否则结果会出错 printf("sum=%f\n",sum); getchar(); }

玉溪市13585738363: C语言高手进来啊
姚威刺五: "",双引号表示的是字符串常量, ''单引号表示的字符常量,只能为单字符. 所以c,d为字符串常量,而b为实型常量,a单引号里面不是单字符,所以a是错的.

玉溪市13585738363: c语言高手进
姚威刺五: 这是我整理以后的,能在TC编译器下运行的: #include<stdio.h> void choose_sort(int data[],int no); int main() { int i; int b[20],no; printf("请输入要排序数的个数(小于20):"); scanf("%d",&no); printf("请输入%d个整数:\n",no); for(i ...

玉溪市13585738363: C语言高手进!
姚威刺五: Ascii码表中,排在前面的字符叫做后面那个字符的前驱字符.. 相对的,后面的字符叫做前面字符的后继字符.. 比如,'0' 是 '1' 的前驱字符..'g' 是 'h' 的前驱字符.. '1' 是 '0' 的后继字符..'h' 是 'g' 的后继字符..

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