❶ 修改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 );
}
}