c语言修改
A. c语言,修改代码
这种全篇红波浪的(红波浪一般都表示错误),一般考虑是你的字符编码问题,找下有没有全角字符,把他换成半角的(英文状态下的字符)。重点检查括号,引号,分号。
B. C语言一个简单程序修改
#include<stdio.h>
void main ()
{
int a,b;
for(a=1;a<9999;a++)
{
b=1862-3*a;
if(3*a+b==1862)
{
if (b==2)
{
printf("%d %d\n",a,b);
}
}
}
}
C. 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个*不同
D. 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:语法错误,最后少了一个分号
E. 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;
}
F. 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 );
}
}
G. 修改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); }
H. C语言程序修改
第一个是对的吧
第二个是错的
很明显
你不明白的是 ||和&&的作用吗 ?
||是或运算 有一个为真 则整个为真
&&是与运算 有一个为假则整个为假
I. 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】了
粗心
呵呵
这程序绝对避免了重复
J. c语言程序修改
首先说下存在的问题:
1.define容易造成误会,因为不符合一般的编程习惯,false 0, true 1;
2.scanf放在你的那个地方是达不到你想要的结果,只输入了一次。建议改成getchar这种形式,具体如图二;
3.为了达到通用化,建议定义两个你需要处理的字符组合,他们相互配对,这样方便以后添加而不用改下面的代码;
4.同时为了配合3这个更改添加一个判断输入字符是不是在字符组的函数,方便使用。
详细代码如图,因为没有Stack我没有办法验证,如果有错你看着改改,这种思路是没有错的。
图二