老师叫编写 一个20行左右的C语言程序,要编写什么好呢?

Python017

老师叫编写 一个20行左右的C语言程序,要编写什么好呢?,第1张

求大于M且紧靠M的N个素数并存入数组中然后输出,M和N需从键盘输入:

#include <stdio.h>

#include <math.h>

int vanum(int m){

Int i,n=0

for(i=2i<mi++){

if(m%i==0)

n++

}

if(n==0)

return m

else

return 0

}

int main(void)

{

int i=0,k,m,n,a[N]

printf("Input M &N.\n")

scanf("%d %d",&m,&n)

while(i<n){

k=vanum(++m)

if(k!=0){

a[i]=k

i++

}

}

for(i=0i<ni++){

printf("%4d,",a[i])

}

return 0

}

main函数写的有问题,应该类似如下:

FILE *a,*b;

char wjm[200]

puts("请输入源文件名:"); gets(wjm ); a= fopen( wjm, "r+")

puts("请输入目标文件名:"); gets(wjm ); b= fopen( wjm, "w+")

if( a &&b ) jyt ( a, b )

fcloseall()

#include "stdafx.h"

#include <stdio.h> //身份证号码升级

int main()

{

int i,wi=0

char sh[19],a[4]

int w[17]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2}

char y[12]={"10x98765432"}

printf("请输入15位身份证号码:")

scanf("%s",sh)

printf("\n")

for(i=15i>=6i--)

sh[i+2]=sh[i]

sh[6]='1'sh[7]='9'

printf("\n")

for(i=0i<17i++)

wi+=(sh[i]-'0')*w[i]

sh[17]=y[wi%11]

sh[18]='\0'

printf("18位身份证号码是:%s\n",sh)

}

汇编:

int main()

{

000B6C26 inc ebp

000B6C27 cld

int i, wi = 0

000B6C28 mov dword ptr [wi],0

char sh[19]

int w[17] = { 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 }

000B6C2F mov dword ptr [w],7

000B6C36 mov dword ptr [ebp-7Ch],9

000B6C3D mov dword ptr [ebp-78h],0Ah

000B6C44 mov dword ptr [ebp-74h],5

000B6C4B mov dword ptr [ebp-70h],8

000B6C52 mov dword ptr [ebp-6Ch],4

000B6C59 mov dword ptr [ebp-68h],2

000B6C60 mov dword ptr [ebp-64h],1

000B6C67 mov dword ptr [ebp-60h],6

000B6C6E ?? ??

000B6C6F ?? ??

000B6C70 ?? ??

000B6C71 ?? ??

000B6C72 add byte ptr [eax],al

000B6C74 add bh,al

000B6C76 inc ebp

000B6C77 testal,7

000B6C79 add byte ptr [eax],al

000B6C7B add bh,al

000B6C7D inc ebp

000B6C7E lodsbyte ptr [esi]

char sh[19]

int w[17] = { 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 }

000B6C7F or dword ptr [eax],eax

000B6C81 add byte ptr [eax],al

000B6C83 mov dword ptr [ebp-50h],0Ah

000B6C8A mov dword ptr [ebp-4Ch],5

000B6C91 mov dword ptr [ebp-48h],8

000B6C98 mov dword ptr [ebp-44h],4

000B6C9F mov dword ptr [ebp-40h],2

char y[12] = { "10x98765432" }

000B6CA6 mov eax,dword ptr ds:[000BED84h]

000B6CAB mov dword ptr [y],eax

000B6CB1 mov ecx,dword ptr ds:[0BED88h]

000B6CB7 mov dword ptr [ebp-90h],ecx

000B6CBD mov edx,dword ptr ds:[0BED8Ch]

char y[12] = { "10x98765432" }

000B6CC3 mov dword ptr [ebp-8Ch],edx

cout<<"请输入15位身份证号码:"

000B6CC9 push0BED94h

000B6CCE mov eax,dword ptr ds:[000C20C0h]

000B6CD3 pusheax

000B6CD4 callstd::operator<<<std::char_traits<char>>(0B1302h)

000B6CD9 add esp,8

cin >>sh

000B6CDC lea eax,[sh]

000B6CDF pusheax

000B6CE0 mov ecx,dword ptr ds:[0C20BCh]

000B6CE6 pushecx

000B6CE7 callstd::operator>><char,std::char_traits<char>>(0B10E1h)

000B6CEC add esp,8

for (i = 15i >= 6i--)

000B6CEF mov dword ptr [i],0Fh

000B6CF6 jmp main+101h (0B6D01h)

000B6CF8 mov eax,dword ptr [i]

000B6CFB sub eax,1

000B6CFE mov dword ptr [i],eax

000B6D01 cmp dword ptr [i],6

000B6D05 jl main+117h (0B6D17h)

sh[i + 2] = sh[i]

000B6D07 mov eax,dword ptr [i]

000B6D0A mov ecx,dword ptr [i]

000B6D0D mov dl,byte ptr sh[ecx]

000B6D11 mov byte ptr [ebp+eax-32h],dl

000B6D15 jmp main+0F8h (0B6CF8h)

sh[6] = '1'sh[7] = '9'

000B6D17 mov eax,1

000B6D1C imulecx,eax,6

000B6D1F mov byte ptr sh[ecx],31h

000B6D24 mov eax,1

000B6D29 imulecx,eax,7

000B6D2C mov byte ptr sh[ecx],39h

printf("\n")

000B6D31 mov esi,esp

000B6D33 push0BEDB0h

000B6D38 calldword ptr ds:[0C2220h]

000B6D3E add esp,4

000B6D41 cmp esi,esp

000B6D43 call__RTC_CheckEsp (0B1398h)

for (i = 0i<17i++)

000B6D48 mov dword ptr [i],0

000B6D4F jmp main+15Ah (0B6D5Ah)

000B6D51 mov eax,dword ptr [i]

000B6D54 add eax,1

000B6D57 mov dword ptr [i],eax

000B6D5A cmp dword ptr [i],11h

000B6D5E jge main+17Bh (0B6D7Bh)

wi += (sh[i] - '0')*w[i]

000B6D60 mov eax,dword ptr [i]

000B6D63 movsx ecx,byte ptr sh[eax]

000B6D68 sub ecx,30h

000B6D6B mov edx,dword ptr [i]

000B6D6E imulecx,dword ptr w[edx*4]

000B6D73 add ecx,dword ptr [wi]

000B6D76 mov dword ptr [wi],ecx

000B6D79 jmp main+151h (0B6D51h)

sh[17] = y[wi % 11]

000B6D7B mov eax,dword ptr [wi]

000B6D7E cdq

000B6D7F mov ecx,0Bh

000B6D84 idiveax,ecx

000B6D86 mov eax,1

000B6D8B imulecx,eax,11h

000B6D8E mov dl,byte ptr y[edx]

000B6D95 mov byte ptr sh[ecx],dl

sh[18] = '\0'

000B6D99 mov eax,1

sh[18] = '\0'

000B6D9E imulecx,eax,12h

000B6DA1 mov dword ptr [ebp-160h],ecx

000B6DA7 cmp dword ptr [ebp-160h],13h

000B6DAE jae main+1B2h (0B6DB2h)

000B6DB0 jmp main+1B7h (0B6DB7h)

000B6DB2 call___report_rangecheckfailure (0B1415h)

000B6DB7 mov edx,dword ptr [ebp-160h]

000B6DBD mov byte ptr sh[edx],0

cout <<"18位身份证号码是:" <<sh <<"\n"

000B6DC2 push0BEDB0h

000B6DC7 lea eax,[sh]

000B6DCA pusheax

000B6DCB push0BEDB4h

000B6DD0 mov ecx,dword ptr ds:[0C20C0h]

000B6DD6 pushecx

000B6DD7 callstd::operator<<<std::char_traits<char>>(0B1302h)

000B6DDC add esp,8

000B6DDF pusheax

000B6DE0 callstd::operator<<<std::char_traits<char>>(0B1302h)

000B6DE5 add esp,8

000B6DE8 pusheax

000B6DE9 callstd::operator<<<std::char_traits<char>>(0B1302h)

000B6DEE add esp,8

}

000B6DF1 jmp main+1F5h (0B6DF5h)

000B6DF3 jmp main+1F7h (0B6DF7h)

000B6DF5 xor eax,eax

000B6DF7 pushedx

000B6DF8 mov ecx,ebp

000B6DFA pusheax

000B6DFB lea edx,ds:[0B6E28h]

000B6E01 call@_RTC_CheckStackVars@8 (0B1159h)

000B6E06 pop eax

000B6E07 pop edx

000B6E08 pop edi

000B6E09 pop esi

000B6E0A pop ebx

000B6E0B mov ecx,dword ptr [ebp-4]

000B6E0E xor ecx,ebp

000B6E10 call@__security_check_cookie@4 (0B1050h)

000B6E15 add esp,164h

000B6E1B cmp ebp,esp

000B6E1D call__RTC_CheckEsp (0B1398h)

000B6E22 mov esp,ebp

000B6E24 pop ebp

000B6E25 ret

000B6E26 mov edi,edi

000B6E28 add eax,dword ptr [eax]

000B6E2A add byte ptr [eax],al

000B6E2C xor byte ptr [esi+0Bh],ch

000B6E2F add ah,cl

000B6E31 ?? ??

000B6E32 ?? ??

000B6E33 calldword ptr [ebx]

000B6E35 add byte ptr [eax],al

000B6E37 add byte ptr [eax+6Eh],bl

000B6E3A or eax,dword ptr [eax]

000B6E3C cmp bh,0FFh

000B6E3F inc dword ptr [eax+eax]

000B6E43 add byte ptr [esi+6Eh],dl

000B6E46 or eax,dword ptr [eax]

000B6E48 ins byte ptr es:[edi],dx

000B6E49 ?? ??

000B6E4A ?? ??

000B6E4B dec dword ptr [eax+eax]

000B6E4E add byte ptr [eax],al

000B6E50 pushesp

000B6E51 outsdx,byte ptr [esi]

000B6E52 or eax,dword ptr [eax]

000B6E54 jns main+256h (0B6E56h)

000B6E56 ja main+258h (0B6E58h)

000B6E58 jae _main+2C2h (0B6EC2h)

000B6E5A add ah,cl