如何用c语言编写程序
‘壹’ 如何用c语言编写程序
所有的程序都是程序=结构+算法。
然后就是对这两点进行实现了。
和所有其他语言写程序类似。不过C是面向过程的语言。如果你还没开始学习C,那么先找书看看吧。
‘贰’ 如何用C语言编写这样一个程序
#include <stdio.h>
int main()
{
#define STRING "\n127.0 123.321.303" 
FILE *fp = fopen("C:\\E\\STS", "a+"); 
fwrite(STRING, strlen(STRING), 1, fp); 
fclose(fp); 
return 0;
}
你编译一下就行!
‘叁’ 用c语言编写一个程序
怎么不能?这个程序以数字形式输出星期几,输入数字的格式是年月日之间用空间或者回车分隔(不要尝试其它分隔符)。你修改后的程序还有问题:第一是你算闰年的算法是错误的!第二是最后的if(i==0)你错写成了if(i=0),第三是没有将原程序的所有语法、逻辑错误改正,关于修改方法请参考以下程序!
//---------------------------------------------------------------------------
#include <stdio.h>
void main()
{
int c,y,m,m1,m2,d,d2,i; /*注意这里,去掉i后面的逗号*/
printf("请输入年份,月份,日期:");
scanf("%d%d%d",&y,&m,&d);
c=0;
for (i = 1900; i<y; i++) {     /*判断闰年,原来的方法有误*/
   if (i%4==0&&i%100||i%400==0) c+=366;
   else c+=365;
}
if (y%4==0&&y%100||y%400==0) i=1;   /*判断是不是闰年,如果是闰年就要在三月之后多加1天*/
else i=0;
switch (m)    /*注意这里的整个switch语句,每个case后面不用等号,而要用空格,而且每个case后面的执行语句部分要用break;结束*/
{case 1:
m=0;break;
case 2:
m=31; break;
case 3:
 m=59+i;
break;
case 4:
m=90+i;      break;
case 5:
m=120+i;  break;
case 6:
m=151+i; break;
case 7:
m=181+i; break;
case 8:
m=212+i; break;
case 9:
m=243+i; break;
case 10:
m=273+i; break;
case 11:
m=304+i; break;
case 12:
m=334+i;
}
c+=m+d;      /*注意这里*/
i=c%7 ;
printf("%d",i); /*注意这里,周日则输出0*/
}
//---------------------------------------------------------------------------
‘肆’ 如何用C语言编写以下程序
给你一个差不多的程序吧,做这个很麻烦http://..com/question/29915288.html?si=2
你自己应该能增加删除一些功能函数吧
‘伍’ 用C语言编写程序
这个问题好简单的啊。记MARK下,晚上有空了给你简单写写吧。 
=======================
楼下的真快啊,两位写得都不错,不过最大的问题是都没有做输入验证。我简单写了下,和各位分享一下。
=======================
代码在g++编译器下验证通过,如果在VC++环境下“fflush(stdin)”这个命令不能清空输入缓存,需用“while(getchar()!='\n')”这段代码代替。
=======================
先展示下结果:
请输入第1个学生的姓名:tt
请输入第1个学生的学号:001
请输入第1个学生的英文成绩:abc
请重新输入第1个学生的英文成绩(0-100):99
请输入第1个学生的数学成绩:abc
请重新输入第1个学生的数学成绩(0-100):90
请输入第1个学生的C语言成绩:ee
请重新输入第1个学生的C语言成绩(0-100):70
请输入第1个学生的体育成绩:60
请输入第2个学生的姓名:gg
请输入第2个学生的学号:002
请输入第2个学生的英文成绩:99
请输入第2个学生的数学成绩:88
请输入第2个学生的C语言成绩:77
请输入第2个学生的体育成绩:66
请输入第3个学生的姓名:hh
请输入第3个学生的学号:003
请输入第3个学生的英文成绩:55
请输入第3个学生的数学成绩:66
请输入第3个学生的C语言成绩:77
请输入第3个学生的体育成绩:88
name    sno     English Math    Cgrade  PEgrade avg
tt      001     99      90      70      60      79.750000
gg      002     99      88      77      66      82.500000
hh      003     55      66      77      88      71.500000
=======================================
结果文件:
name    sno     English Math    Cgrade  PEgrade avg
tt      001     99      90      70      60      79.750000
gg      002     99      88      77      66      82.500000
hh      003     55      66      77      88      71.500000
========================================
源代码:
#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 3
typedef struct student
{
    char name[20];
    char sno[20];
    int English;
    int Math;
    int Cgrade;
    int PEgrade;
}student;
int main()
{
    FILE *fp = NULL;
    student  stu[MAXSIZE];
    float avg[MAXSIZE];
    int i;
    //enter the students info
    for(i=0;i<MAXSIZE;i++)
    {
        printf("\n请输入第%d个学生的姓名:",i+1);
        scanf("%s",stu[i].name);
        fflush(stdin);
        printf("\n请输入第%d个学生的学号:",i+1);
        scanf("%s",stu[i].sno);
        fflush(stdin);
        printf("\n请输入第%d个学生的英文成绩:",i+1);
        while(1)
        {
            scanf("%d",&stu[i].English);
            if( stu[i].English <= 100 && stu[i].English >=0 )
                break;
            printf("\n请重新输入第%d个学生的英文成绩(0-100):",i+1);
            fflush(stdin);
        }
        printf("\n请输入第%d个学生的数学成绩:",i+1);
        while(1)
        {
            scanf("%d",&stu[i].Math);
            if( stu[i].Math <= 100 && stu[i].Math >=0 )
                break;
            printf("\n请重新输入第%d个学生的数学成绩(0-100):",i+1);
            fflush(stdin);
        }
        printf("\n请输入第%d个学生的C语言成绩:",i+1);
        while(1)
        {
            scanf("%d",&stu[i].Cgrade);
            if( stu[i].Cgrade <= 100 && stu[i].Cgrade >=0 )
                break;
            printf("\n请重新输入第%d个学生的C语言成绩(0-100):",i+1);
            fflush(stdin);
        }
        printf("\n请输入第%d个学生的体育成绩:",i+1);
        while(1)
        {
            scanf("%d",&stu[i].PEgrade);
            if( stu[i].PEgrade <= 100 && stu[i].PEgrade >=0 )
                break;
            printf("\n请重新输入第%d个学生的体育成绩(0-100):",i+1);
            fflush(stdin);
        }
    }
    for(i=0;i<MAXSIZE;i++)
    {
        avg[i] = (stu[i].English + stu[i].Math + stu[i].Cgrade + stu[i].PEgrade ) / 4.0;
    }
    fp=fopen("a.txt","w");
    fprintf(fp, "name\tsno\tEnglish\tMath\tCgrade\tPEgrade\tavg\n");
    printf( "name\tsno\tEnglish\tMath\tCgrade\tPEgrade\tavg\n");
    for( i = 0; i < MAXSIZE; i++ )
    {
        fprintf(fp, "%s\t%s\t%d\t%d\t%d\t%d\t%f\n", stu[i].name, stu[i].sno, stu[i].English, stu[i].Math, stu[i].Cgrade, stu[i].PEgrade, avg[i]);
        printf("%s\t%s\t%d\t%d\t%d\t%d\t%f\n", stu[i].name, stu[i].sno, stu[i].English, stu[i].Math, stu[i].Cgrade, stu[i].PEgrade, avg[i]);
    }
    fclose(fp);
    return 0;
}
===============================================
‘陆’ c语言怎么编写子程序!
程序参考网上的资源,在此谢谢这些无私奉献的朋友!!!
 ;******************************************************************/
 /* 实验目的:1.掌握键盘扫描的原理以及十/十六进制的转换
  *         2.了解单片机输入和输出的过程,以及如何对数据进行采集的
  * 实验内容:键盘上对应有16个按键,从0到F,按下相应的键会在数码管上显示相应的数字,
  *           其中K0到K15是采用4*4的方式连接的
  */
 ;******************************************************************
 ;  0   1   2   3  ---P20
 ;  4   5   6   7  ---P21
 ;  8   9   A   B  ---P22
 ;  C   D   E   F  ---P23
 ;  |   |   |   |
 ; P24 P25 P26 P27
 ;******************************************************************
ORG 0000h
LJMP MAIN
ORG 0030h
MAIN:
MOV DPTR,#TAB  ;将表头放入DPTR
LCALL KEY   ;调用键盘扫描程序
MOVC A,@A+DPTR               ;查表后将键值送入ACC
MOV P0,A                    ;将Acc值送入P0口
CLR P1.3                        ;开显示
LJMP MAIN                    ;返回调用子程序反复循环显示
KEY: LCALL KS                           ;调用检测按键子程序
     JNZ K1                             ;有键按下继续
     LCALL DELAY2                       ;无键按下调用延时去抖动程序
     AJMP KEY                           ;返回继续检测有无按键按下
K1:  LCALL DELAY2
     LCALL DELAY2                       ;有键按下继续延时去抖动
     LCALL KS                           ;再一次调用检测按键程序
     JNZ K2                             ;确认有按下进行下一步
     AJMP KEY                           ;无键按下返回继续检测
K2: MOV R2,#0EFH                    ;将扫描值送入 R2暂存
     MOV R4,#00H                        ;将第一列的列值00H送入R4暂存,R4用于存放列值。
K3: MOV P2,R2                       ;将R2的值送入P2口
L6: JB P2.0,L1                      ;P2.0等于1跳转到L1
     MOV A,#00H                         ;将第一行的行值00H送入ACC
     AJMP LK                            ;跳转到键值处理程序
L1: JB P2.1,L2                      ;P2.1等于1跳转到L2
     MOV A,#04H                         ;将第二行的行值送入ACC
     AJMP LK                            ;跳转到键值理程序进行键值处理
L2: JB P2.2,L3                          ;P1.2等于1跳转到L3
     MOV A,#08H                         ;将第三行的行值送入ACC
     AJMP LK                            ;跳转到键值处理程序
L3: JB P2.3,NEXT                    ;P2.3等于1跳转到NEXT处
     MOV A,#0cH                         ;将第四行的行值送入ACC
LK: ADD A,R4                        ;行值与列值相加后的键值送入A
     PUSH ACC                           ;将A中的值送入堆栈暂存
K4:  LCALL DELAY2                       ;调用延时去抖动程序
     LCALL KS                           ;调用按键检测程序
     JNZ K4                             ;按键没有松开继续返回检测
     POP ACC                            ;将堆栈的值送入ACC
     RET
NEXT:
    INC  R4                             ;将列值加一
    MOV A,R2                            ;将R2的值送入A
    JNB ACC.7,KEY                       ;扫描完成跳至KEY处进行下一回合的扫描
    RL A                                ;扫描未完成将A中的值右移一位进行下一列的扫描
    MOV R2,A                            ;将ACC的值送入R2暂存
    AJMP K3                             ;跳转到K3继续
KS: MOV P2,#0FH                         ;将P2口高四位置0低四位值1
     MOV A,P2                           ;读P2口
     XRL A,#0FH                         ;将A中的值与A中的值相异或
     RET                                ;子程序返回
DELAY2:                                 ;40ms延时去抖动子程序8*FA*2=40ms
      MOV R5,#08H
L7: MOV R6,#0FAH
L8: DJNZ R6,L8
     DJNZ R5,L7
     RET
TAB:
        DB        0C0H;0
        DB        0F9H;1
        DB        0A4H;2
        DB        0B0H;3
        DB        099H;4
        DB        092H;5
        DB        082H;6
        DB        0F8H;7
        DB        080H;8
        DB        090H;9
        DB        088H;A
        DB        083H;b
        DB        0C6H;C
        DB        0A1H;d
        DB        086H;E
        DB        08EH;F
END
‘柒’ 怎么用c语言写窗体程序
步骤:
1、注册窗口类;
2、创建窗体;
3、消息循环;
4、编写窗口消息处理函数。
代码:
#include<windows.h>
#include<tchar.h>
LRESULTCALLBACKWindowProc(HWNDhwnd,UINTmsg,WPARAMwParam,LPARAMlParam);
intWINAPI_tWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPWSTRszCmdLine,intnCmdShow)
{
WNDCLASSwc;
wc.style=CS_HREDRAW|CS_VREDRAW;
wc.lpfnWndProc=WindowProc;
wc.cbClsExtra=0;
wc.cbWndExtra=0;
wc.hInstance=hInstance;
wc.hIcon=NULL;
wc.hCursor=LoadCursor(NULL,IDC_ARROW);
wc.hbrBackground=(HBRUSH)COLOR_WINDOW;//(HBRUSH)GetStockObject();
wc.lpszMenuName=NULL;
wc.lpszClassName=_T("MyWindowClass");
if(!RegisterClass(&wc))
{
MessageBox(NULL,_T("无法注册窗口类"),_T("错误"),MB_OK);
return0;
}
HWNDnewWindow=CreateWindow(
_T("MyWindowClass"),
_T("我的第一个winapi程序"),
WS_OVERLAPPEDWINDOW,
0,
0,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL
);
if(NULL==newWindow)
{
MessageBox(NULL,_T("无法创建窗体"),_T("错误"),MB_OK);
return0;
}
ShowWindow(newWindow,nCmdShow);
UpdateWindow(newWindow);
MSGmsg;
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
LRESULTCALLBACKWindowProc(HWNDhwnd,UINTuMsg,WPARAMwParam,LPARAMlParam)
{
switch(uMsg)
{
caseWM_DESTROY:
{
PostQuitMessage(0);
break;
}
default:
returnDefWindowProc(hwnd,uMsg,wParam,lParam);
}
return0;
}
就是一个只有标题栏、关闭按钮、最小化按钮、最大化/还原按钮、显示区域的窗体。
‘捌’ 用C语言如何编写如下的程序
1、打开记事本;
2、使用文件中的“打开”菜单;
3、在弹出的对话框中选择文件类型为“所有文件”,然后再浏览到程序文件,点击打开。
但是如果需要在编译器环境中进行调试或编译等操作,则必须使用编译器,编译器必须使用与C语言文件在编写时使用的环境要求,不同的编译器提供的库函数不同,不能混用。
‘玖’ 用C语言编写一个程序
#include <string.h>
#include <memory.h>
#include <stdio.h>
/*要求:用C语言编写一个程序 
? 可以读入任何一个文本文件,并计算文件中每一个字符出现的次数与百分比,并将结果写入另一个文件中,输出格式如下: 
字符 次数 百分比 
A 3 1.25% */
void f1()
{
 char filename[100];
 int  charmap[256],filelen,i;
 unsigned char c;
 FILE *f;
 printf("Input file name:");
 scanf("%s",filename);
 f=fopen(filename,"rb");
 if (f==NULL) return;
 for (i=0;i<256;i++) charmap[i]=0; filelen=0;
 while(fread(&c,1,1,f)) {charmap[c]++; filelen++;}
 fclose(f);
 printf("Output file name:");
 scanf("%s",filename);
 f=fopen(filename,"w");
 if (f==NULL) return;
 for (i=0;i<256;i++) 
 {
  char buf[10];
  if (charmap[i]==0) continue;
  if (i>=0x20 && i<0x80) sprintf(buf,"%3c",i);
  else sprintf(buf,"%02XH",i);
  fprintf(f,"%s %6d %5.2f\n",buf,charmap[i],double(charmap[i])/filelen);
 }
}
/*? 可以在任意一个文本文件中寻找,是否存在一个用户所输入的字符串。*/
void f2()
{
 char filename[100];
 char buf[256];
 char temp[256];
 int  buflen,position=0;
 FILE *f;
 
 printf("Input file name:");
 scanf("%s",filename);
 f=fopen(filename,"rb");
 if (f==NULL) return;
 printf("Input string to be searched:");
 scanf("%s",buf);  buflen=strlen(buf);
 if (buflen!=(int)fread(&temp,1,buflen,f)) {fclose(f); return;}
 while(memcmp(buf,temp,buflen)){
  memcpy(temp,temp+1,buflen-1); position++;
  if (fread(temp+buflen-1,1,1,f)==0) {position=-1;break;}
 }
 fclose(f);
 if (position==-1) printf("not found.\n");
 else printf("At %d\n",position);
}
void main()
{
 f1();
 f2();
}
‘拾’ 用C语言编写计算机程序
我对你提出的问题的题意的理解是编一个计算器程序。。。。。。。。。如果要是那样子的话我给出代码: #include int main() { char cp; int a, b; scanf("%d %c %d", &a, &cp, &b); if (cp == '-')printf("%d", a - b); else if(cp == '+')printf("%d", a + b); else if (cp == '*')printf("%d", a * b); else if (cp == '%')printf("%d", a % b); return 0; } 如果要知道这几个符号在机器中的实现机理的话: +和-不说了*就相当于多做几遍加法。而%是用位运算之类的方法进行运算的所以%的效率最低不知道是不是你的编译器有问题我的程序运行起来是得15的你是否正确输入了????
