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我沒有辦法驗證,如果有錯你看著改改,這種思路是沒有錯的。
圖二