❶ 修改c语言程序
#include <stdio.h>
int (*function[4])(int, int);
int execute(int x, int y,int (*fun)(int, int)) { return (*fun)(x,y); }
int main()
{
int fun1(int, int);
int fun2(int, int);
int fun3(int, int);
int fun4(int, int);
int a=10,b=5,i;
function[0]=fun1;
function[1]=fun2;
function[2]=fun3;
function[3]=fun4;
for(i=0;i<4;i++)
printf("fun no.%d->%d\n",i+1,execute(a,b,function[i]));
return 0;
}
int fun1(int x, int y) { return(x+y); }
int fun2(int x, int y) { return(x-y); }
int fun3(int x, int y) { return(x*y); }
int fun4(int x, int y) { return(x/y); }
❷ C语言,修改代码
这种全篇红波浪的(红波浪一般都表示错误),一般考虑是你的字符编码问题,找下有没有全角字符,把他换成半角的(英文状态下的字符)。重点检查括号,引号,分号。
❸ C语言修改
还有问题没,一个问题100,我包了,呵呵
#include <Stdio.h>
#include<conio.h>
#define N 5
void bubblesort(int x[])
{
int i,j,t;
for(j=0;j<=N-2;j++)
{
for(i=0;i<N-j;i++) //<N-J就行,别加1
if(x[i]>x[i+1])
{
t=x[i];
x[i]=x[i+1];
x[i+1]=t;
}
}
}
void search (int x[],int k,int *s) //传递地址才能改变原来的变量
{
int mid,top=0,bot=N-1; //TOP和BOT是下标,不是其值
*s=-1;
while(top<=bot)
{
mid=(top+bot)/2;
if(k==x[mid]) //找到了就退出
{
*s=mid;
break;
}
else
if(k>x[mid])
top=mid+1;
else
bot=mid-1;
}
}
int main()
{
int i,n,b,c;
int a[N];
printf("please input 20 numbers:\n");
for (i=0;i<N;i++)
{
scanf("%d",&a[i]);
// printf("%5d",a[i]);
}
printf("\n");
bubblesort(a);
printf("please input the number:\n");
scanf("%d",&b);
search(a,b,&c);
if(c!=-1)
printf("The number is:%d,a[%d].\n",b,c);
else
printf("can't find it\n");
getch();
return 0;
}
❹ C语言修改程序
#include<stdio.h>
main()
{int
k,i,j;
for(i=0;i<4;i++)
{for(k=1;k<=4*i;k++)
printf("!");
for(j=0;j<7-i*2;j++)
printf("*");
printf("\n");
}
}
这个输出第二个只能有5个*
跟你写的6个*不同
❺ c语言程序修改
首先说下存在的问题:
1.define容易造成误会,因为不符合一般的编程习惯,false 0, true 1;
2.scanf放在你的那个地方是达不到你想要的结果,只输入了一次。建议改成getchar这种形式,具体如图二;
3.为了达到通用化,建议定义两个你需要处理的字符组合,他们相互配对,这样方便以后添加而不用改下面的代码;
4.同时为了配合3这个更改添加一个判断输入字符是不是在字符组的函数,方便使用。
详细代码如图,因为没有Stack我没有办法验证,如果有错你看着改改,这种思路是没有错的。
图二
❻ c语言 修改简单代码
正确的代码如下:
main()
{
int
a[9],i,k,j,s=0;
for(i=1;i<=9;i++)
a[i-1]=i;
for(i=1;i<=9;i++)
for(k=i;k<=9;k++)
{
j=15-a[i-1]-a[k-1];
if(j>=1&&j<=9&&j>=a[i-1]&&j>=a[k-1])
{printf("%d+%d+%d=15\n",a[i-1],a[k-1],j);
s++;
}
}
printf("总共有%d种可能",s);
}
一开始
你未给数组赋初值
题中a[k]应该是a[k-1]
判断条件缺少
耐心修改
你会改成正确的
好好学
不好意思啊!!1我习惯用tc
所有往上写的时候把a【k-1】录成a【k】了
粗心
呵呵
这程序绝对避免了重复
❼ C语言程序修改
# include <stdio.h>bool Isprime(int val){ //int val = 9; //这里不需要了 int i; for (i = 2;i<val; ++i) { if(val%i == 0) break; } if (i == val) //这里改为 val return true; else return false;}int main(){ int m; scanf("%d, &m"); if(Isprime(m))return 0;}
做了一些修改
# include <stdio.h>int Isprime(int val) //不知道你的软件有没有bool 型号,早期的c语言没有,改为int{ //int val = 9; //这里不需要了 int i; for (i = 2;i<val; ++i) { if(val%i == 0) break; } if (i == val) //这里改为 val return 1; //改为1; else return 0; //改为0 }int main(){ int m; scanf("%d", &m); if(Isprime(m)) printf("YES"); //增加输出 else printf("NO");return 0;}
希望能解决您的问题。
❽ c语言程序修改
有三种方法可以实现,分别如下:
第1种、将文件中数据读入内存中,修改后,清空源文件,存入新数据。
第2种、以读写的方式打开文件,将文件指针移动到要修改的地方,写入新数据。新数据将会覆盖掉旧数据。
第3种、以读写的方式打开文件,将文件指针定位到需要修改数据的末尾,然后删除需要修改的数据(通过循环n次执行fputc(8,fp),直到清空需要修改的数据为止,8为退格键对应的ascii)。 然后计算需要加入的新数据长度,通过fputc(32,fp)来添加空格到文件中(32为空格键的ascii). 然后根据指针位置,填入数据覆盖掉这些空格。
注意:第1种方法适合数据量较小的情况,第2种、第3种适合数据量较大的情况。
提供一个参考代码,如下:
#include"stdio.h"
main()
{
FILE*in=fopen("f:\test.txt","r");
FILE*out=fopen("f:\back.txt","w");/*out是充当临时文件作用*/
intch=0;
if(!in)
{
printf("cann'topentest.txt ");
exit(1);
}
if(!out)
{
printf("cann'tcreateback.txt ");
exit(1);
}
/*开始复制*/
while(!feof(in))
{
ch=fgetc(in);
if(ch=='a')ch='p';
fputc(ch,out);
}
fclose(in);fclose(out);
unlink("f:\test.txt");/*删除test.txt*/
rename("f:\back.txt","test.txt");/*改名*/
printf("ok!!!!!! ");
}
❾ c语言修改
两个错误,一个语法错误,一个逻辑错误:
#include "Stdio.h"
void main()
{ int a,g;
printf("输入一个百分制成绩");
scanf("%d",&a);
if(a>=90) g=0; //错误1:逻辑错误,需要将原先的a>90改成a>=90,否则90这个值的处理不正确
if(a>=80&&a<=89) g=1;
if(a>=70&&a<=79) g=2;
if(a>=60&&a<=69) g=3;
if(a<60) g=4;
switch(g)
{
case 0:printf("A");break;
case 1:printf("B");break;
case 2:printf("C");break;
case 3:printf("D");break;
case 4:printf("E");break;
}
}//错误2:语法错误,最后少了一个分号
❿ c语言修改文件
// crt_fgets.c
// This program uses fgets to display
// a line from a file on the screen.
//
#include <stdio.h>
int main( void )
{
FILE *stream;
char line[100];
if( fopen_s( &stream, "crt_fgets.txt", "r" ) == 0 )
{
if( fgets( line, 100, stream ) == NULL)
printf( "fgets error\n" );
else
printf( "%s", line);
fclose( stream );
}
}